1、ArrayList实现是基于数组来实现的,这可由ArrayList的源码看出;
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { private transient Object[] elementData; private int size; /*其他参数和方法*/ }
ArrayList是List接口的长度可变的数组实现。
2、LinkedList是List和Deque接口的双向链表的实现,但是Java中并没有指针的概念,遂查看源码。
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable { private transient Entry<E> header = new Entry<E>(null, null, null); private transient int size = 0; /** * 构造器,构建空表 */ public LinkedList() { header.next = header.previous = header; } /*其他参数、方法*/ /** * LinkedList链表元素 */ private static class Entry<E> { E element; Entry<E> next; Entry<E> previous; Entry(E element, Entry<E> next, Entry<E> previous) { this.element = element; this.next = next; this.previous = previous; } } /** * LinkedList获取第一个元素的方法实现 */ public E getFirst() { if (size==0) throw new NoSuchElementException(); return header.next.element; } }
LinkedList利用私有静态类Entry定义了链表所用的数据成员。在Entry类中,每个类成员除了含有数据部分,还包括两个分别指向前一链表元素和后一链表元素的Entry类型的引用变量(跟C++中的指针很相似),由这种结构构成了LinkedList的链表结构。
注:ArrayList与LinkedList的实现都是不同步的。
相关推荐
1.List是接口类,ArrayList和LinkedList是List的实现类 2.ArrayList是动态数组(顺序表)的数据结构 3.LinkedList
测试ArrayList和LinkedList的add方法
关于arraylist和linkedList的区别
ArrayList、LinkedList、Vector区别简介。
【Java面试题】ArrayList和LinkedList区别
合理运用ArrayList与LinkedList
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,...
2,随机访问的时候,ArrayList的效率比较高,因为LinkedList要移动指针,而ArrayList是基于 3,索引(index)的数据结构,可以直接映射到。 4,插入、删除数据时,LinkedList的效率比较高,因为ArrayList要移动数据。 ...
ArrayList Vector LinkedList 区别与用法.
05丨ArrayList还是LinkedList?使用不当性能差千倍.html
2.在ArrayList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动 3.LinkedList不支持高效的随机元素访问 4.ArrayList的
比较ArrayList,LinkedList,Vector三者随机读取,插入,删除性能。
list集合案例增、删、改、查,ArrayList与LinkedList的区别,LinkedList堆栈/队列的开发,list集合容量会自动扩容,list去除重复
对比Vector、ArrayList、LinkedList1
主要介绍了java 中ArrayList与LinkedList性能比较的相关资料,需要的朋友可以参考下
ArrayList-LinkedList-源码.rar
10.ArrayList 和LinkedList的区别.avi
Map+List+ArrayList+LinkedList Java源代码,适合初学者
Java ArrayList Vector LinkedList map区别 各种集合的区别 写得非常详细
集合(Arraylist,LinkedList)进阶思维导图