Java中Arraylist与linkedlist的区别
4个回答
展开全部
ArrayList 底层是用数组实现的,更擅长遍历搜索查找,因为数组有下标的概念, 可以很方便的跳到指定的位置; 不擅长插入删除操作;
LinkedList 底层是用链表实现的, 链表是一个个节点链起来的, 擅长插入删除等操作(某节点断开去掉或者重新 连接上新的节点,这类操作比较快捷),搜索查询的话只能是一个节点一个节点的来。
数据量小的情况下两者的效率差不多, 基本用法也差不多,数据量很大的情况下还是有点差距的。看你平时侧重哪方面的需求了~
LinkedList 底层是用链表实现的, 链表是一个个节点链起来的, 擅长插入删除等操作(某节点断开去掉或者重新 连接上新的节点,这类操作比较快捷),搜索查询的话只能是一个节点一个节点的来。
数据量小的情况下两者的效率差不多, 基本用法也差不多,数据量很大的情况下还是有点差距的。看你平时侧重哪方面的需求了~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ArrayList其实就是数组
看名字LinkedList是链表性质的
看名字LinkedList是链表性质的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
List: 有顺序的,元素可以重复
遍历:for 迭代
排序:Comparable Comparator Collections.sort()
ArrayList:底层用数组实现的List
特点:查询效率高,增删效率低 轻量级 线程不安全
遍历:
ArrayList<String> al=new ArrayList();
al.add("winsun"); al.add("weixin"); al.add("mybole");
for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}//for遍历
Iterator it=al.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}//迭代器遍历
LinkedList:底层用双向循环链表 实现的List
特点:查询效率低,增删效率高
Vector: 底层用数组实现List接口的另一个类
特点:重量级,占据更多的系统开销 线程安全
遍历:for 迭代
排序:Comparable Comparator Collections.sort()
ArrayList:底层用数组实现的List
特点:查询效率高,增删效率低 轻量级 线程不安全
遍历:
ArrayList<String> al=new ArrayList();
al.add("winsun"); al.add("weixin"); al.add("mybole");
for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}//for遍历
Iterator it=al.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}//迭代器遍历
LinkedList:底层用双向循环链表 实现的List
特点:查询效率低,增删效率高
Vector: 底层用数组实现List接口的另一个类
特点:重量级,占据更多的系统开销 线程安全
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询