List接口
- 鉴于Java中数组用来存储数据的局限性,我们通常使用List替代数组
- List集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引。
- List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据 序号存取容器中的元素。
- JDK API中List接口的实现类常用的有:ArrayList、LinkedList和Vector。
常用方法
- void add(int index,Object ele) : 在index位置插入ele元素
- boolean addAll(int index,Collection eles): 从index位置开始将eles中的所有元素添加进来
- Object get(int index): 获取指定index位置的元素
- int indexOf(Object obj):返回obj在当前集合中首次出现的位置
- int lastIndexOf(Object obj): 返回obj在当前集合中末次出现的位置
- Object remove(int index):移除指定index位置的元素,并返回此元素
- Object set(int index, Object ele):设置指定index位置的元素为ele
- List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex 位置的子集合
LinkedList集合
java.util.LinkedList集合数据存储的结构底层是一个链表结构,是一个双向链表结构,方便元素的添加和删除。
常用API方法如下:
- public void addFirst(E e) : 将指定的元素添加到此列表的开头
- public void addLast(E e) : 将指定的元素添加到此列表的末尾
- public E getFirst() : 获取此列表的首节点元素
- public E getLast() : 获取此列表的末节点元素
- public E removeFirst() : 删除此列表的首节点元素
- public E removeLast() : 删除此列表的末节点元素
- public E pop() : 从此列表所表示的堆栈中弹出一个元素(首元素)
- public void push(E e) : 将元素推入此列表所表示的堆栈中(首元素)
- public boolean idEmpty() : 如果此列表不包含任何元素,返回true
LinkedList集合的特点
- 底层是一个链表结构,查询慢,增删快
- 里面包含了大量的首尾节点操作的方法
- 允许所有元素(包括null)
- 元素是有序的