ArrayList和LinkedList的区别
ArrayList和LinkedList的区别
-
底层数据结构不同,前者底层基于数组实现,后者底层基于链表实现;
-
前者更适合指定参数查找,后者更适合删除添加;
-
两者都实现了List接口,后者额外实现了Deque接口,还可用作队列使用;
-
jdk1.6时LinkedList是双向循环链表,jdk1.7后为简单的双向链表;
-
LinkedList的get查找时,先校验index的有效性,再比较index和整体size,index较小则从first开始遍历,否则从last开始遍历;
-
LinkedList删除方法remove,默认删除的是首个元素;
评论