本文对比分析了java集合框架中的几种list实现方式
|
底层数据结构 |
实现方式 |
线程安全性 |
优点 |
缺点 |
备注 |
ArrayList |
数组 |
增加或减少元素时,需要考虑扩容;直接修改源数据。 | 非线程安全 |
按索引查找元素快 |
新增或减少元素需要考虑数组容量问题,数组的扩容与缩容有一定的性能损耗 |
java.util |
LinkedList |
链表 |
双端链表;增加元素时添加到尾节点;删除元素时,删除首节点。 |
非线程安全 |
新增、删除元素效率高 |
查找元素稍慢 |
java.util |
Copy |