在Collection中,List集合是有序的,Developer可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问、遍历元素。
List集合中,常用的是ArrayList和LinkedList这两个类。其中,ArrayList底层通过数组实现,随着元素的增加而动态扩容。而LinkedList底层通过链表来实现,随着元素的增加不断向链表的后端增加节点。
特点
有序:可以保证元素放入的顺序。
通过给每个元素编号,可以通过索引的方式来操作这个集合。
List中可以包含重复的元素。
List可以添加null元素,而且可以添加多个null元素
常用方法
ArrayList
ArrayList是Java集合框架中使用最多的一个类,是一个数组队列,线程不安全集合。它继承于AbstractList,实现了List, RandomAccess, Cloneable, Serializable接口。
具有如下特点:
【Array List 基本操作】
LinkedList
LinkedList是一个双向链表,每一个节点都拥有指向前后节点的引用。相比于ArrayList来说,LinkedList的随机访问效率更低。
它继承AbstractSequentialList,实现了List, Deque, Cloneable, Serializable接口。
【LinkedList基本操作】
ArrayList和LinkedList区别:
ArrayList是基于数组的,而LinkedList基于链表的
ArrayList 查询快,增删慢;
LInkedList 查询慢,增删快;
ArrayList、LinkedList使用场景
查询业务多的情况下,适合ArrayList.
增删业务多的情况下,适合LinkedList.
如果不确定查询多还是增删多,就用ArrayList;
二八法则:20%是增删相关,80%是查询相关
原文:https://www.cnblogs.com/juzhuxiaozhu/p/13084356.html