ArrayList和LinkedList的区别

ArrayList

基于动态数组,连续内存存储,适合随机访问。
扩容机制:因为数组长度固定,超出长度存数据需要新建数组,然后将数组的旧数据拷贝到新数组,如果不是尾插法插入数据还会涉及到元素移动,
使用尾插法并指定初始容量可以极大的提升性能,甚至超过LinkedList(需要大量创建node)

LinkedList

基于链表,可以存储在分散的内存中,适合做数据插入及删除操作,不适合查询
遍历LinkedList必须使用iterator不能使用for循环,因为每次for循环体内通过get(i)取得某个元素时都需要对list进行重新遍历,性能消耗大
另外不要试图使用indexOf返回元素索引,并利用其进行遍历,使用indexOf进行遍历,当结果为空时会遍历整个链表

posted @ 2021-09-22 17:20  code-G  阅读(24)  评论(0编辑  收藏  举报