List集合中的知识点

ArrayList

1、ArrayList 是一个数组队列,相当于动态数组,为线程不安全
2、继承了AbstractList,实现了List,提供了添加、删除、修改、遍历等功能。
3、实现了RandmoAccess接口,提供了随机访问功能。
4、ArrayList通过一个数组去保存数据的,默认容量大小是10,当ArrayList容量不足以容纳全部元素时,ArrayList会重新设置容量:新的容量=“(原始容量x3)/2 + 1”。

LinkedList

1、LinkedList 是一个继承于AbstractSequentialList的双向链表,提供了随机访问功能,顺序访问会非常高效,而随机访问效率比较低。,它也可以被当作堆栈、队列或双端队列进行操作,为线程不安全
2、实现了List,提供了添加、删除、修改、遍历等功能。
3、实现Deque接口,即能将LinkedList当作双端队列使用。
4、索引的原理是比较“location”和“双向链表长度的1/2”;若前者大,则从链表头开始往后查找,直到location位置;否则,从链表末尾开始先前查找,直到location位置。

Vector

Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。

总结:

ArrayList 是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。
LinkedList 是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率高。
Vector 是矢量队列,和ArrayList一样,它也是一个动态数组,由数组实现。但是ArrayList是非线程安全的,而Vector是线程安全的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容