对于初学Java者,相信还有一部分人不了解ArrayList与LinkedList。
List就是一个有序的集合,什么叫有序?就是它会维护元素加入集合的先后顺序。
(区别于Set,Set则是无序的集合)
在List中间插入元素后,后面的每个元素都要往后挪一个位置,很明显效率低。
数组中有4个红球
在位置2插入绿球,原来排在后面的两个红球都得往后挪一位
可以直接通过索引访问,效率高。
链表的优点:插入元素快
请看如下两张图,一开始链表中有按顺序的三个球ABC,现在需要往A球与B球之前插入D球,这里只需要先把AB的连接断开,再建立AD连接、DB连接,原来B、C的位置不需要往后挪。
链表中有按顺序的ABC三个红球
往链表的A球与B球中间插入绿球D
链表的缺点:从上图可以看出,如果要访问链表的第4个元素,需要从第一个元素(A球)开始,沿着连接往下找,相对于数组直接通过索引访问,链表的性能会慢一些,尤其是链表中元素很多的时候,访问会越慢。
ArrayList 适合频繁访问,不适合频繁插入。
LinkedList 适合频繁插入,不适合频繁访问。
| 留言与评论(共有 0 条评论) “” |