Java LIst接口的实现类ArrayList与LinkedList
2020-07-02 11:31
423 查看
ArrayList
它是一个线性数组表,是一个大小可变的数组,在内存中分配连续的空间
优点:遍历元素和随机访问元素的效率比较高
ArrayList常用方法
public void add(int index,E element)
在指定位置添加元素
public boolean addAll(int index,Collection<? extends E> c)
在指定位置添加一组元素
E get(int index)
返回指定位置元素
E set(int index,E element)
替换指定位置元素
public int indexOf(Object o)
查找指定元素位置
public int lastIndexOf(Object o)
从后往前查找指定元素位置
public ListIterator listiterator()
获得List迭代器对象
public E remove(int index)
删除指定位置的元素
public List subList(int fromIndex,int toIndex)
取出集合中的子集合
LinkedList
它是一个链表,采用链表的储存方式,提供从线性表两端提取、插入和删除的方法
优点:插入、删除效率比较高
LinkedList的的方法与ArrayList几乎相同,那么怎么体现它们之间的区别呢
举个栗子:
假设我们分别用两种方法拼接150000个对象
public static long costTime(List<Object> list) { Object obj=new Object(); long startTime=System.currentTimeMillis(); for(int i=0;i<150000;i++) { list.add(obj); } long endTime=System.currentTimeMillis(); return endTime-startTime; }
System.out.println("ArrayList用时:"+costTime(new ArrayList<>())); System.out.println("LinkedList用时:"+costTime(new LinkedList<>()));
可以看到两种方法耗时相似
那么如果每次都在第一个地方插入元素呢
public static long costTime(List<Object> list) { Object obj=new Object(); long startTime=System.currentTimeMillis(); for(int i=0;i<150000;i++) { list.add(0,obj); } long endTime=System.currentTimeMillis(); return endTime-startTime; }
相关文章推荐
- java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析
- java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
- java源码分析之List接口以及ArrayList、LinkedList、Stack、Vector等实现类
- List接口的实现类---ArrayList、LinkedList、Vector之间的区别--------(java复习)
- java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
- JAVA List接口:(介绍其下的两个实现类:ArrayList和LinkedList)
- java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析
- java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
- java的list几种实现方式的效率(ArrayList、LinkedList、Vector、Stack),以及 java时间戳的三种获取方式比较
- java非并发容器ArrayList 和 LinkedList 优缺点比较及其实现源码分析
- Java基础面试题4-描述一下ArrayList和LinkedList各自实现和区别
- Java 集合 1:Collection,List,ArrayList,Vector,LinkedList(实现方式,对比)
- ArrayList集合实现RandomAccess接口有何作用?为何LinkedList集合却没实现这接口?
- Java 集合:Collection,List,ArrayList,Vector,LinkedList(实现方式,对比)
- Java基础之集合List-ArrayList、LinkedList、Vector的底层实现和区别
- 牛客网Java刷题知识点之ArrayList 、LinkedList 、Vector 的底层实现和区别
- Java中list接口的方法和list接口的实现类LinkedList,Vecotr以及队列和栈结构
- java 集合———List 实现类之 ArrayList、LinkedList
- Java集合源码学习(8)_List接口的实现_CopyOnWriteArrayList
- Java LinkedList 实现原理及数据接口