ArrayList:
1.基于动态数组
2.连续内存存储空间
3.适合下标索引访问(随机访问)
4.动态扩容:超出长度需要重建数组,将老数组数据重新拷贝,非尾部插入会涉及元素移动,使用尾插法并指定初始容量会极大提升性能,甚至超过LinkedList(创建大量node对象也要耗时)
LinkedList:
1.基于链表
2.分散存储在内存中
3.适合插入删除操作,不适合查询
4.需要使用iterator迭代,不要使用get(I)通过索引访问,会引起list重新遍历,不要使用indexOf返回索引进行遍历
5.实现了Deque<E>接口,是一个双端队列
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END