List接口
定义
List是一个有序的、可以重复、可以为null 的集合
有序
List中每个元素都有索引标记。可以根据元素的索引标记(在List中的位置)访问元素,从而精确控制这些元素
可重复
List允许加入重复的元素。更确切地讲,List通常允许满足obj1.equals(obj2) 的元素重复加入容器
方法
在指定位置插入元素
void add(int index, Object obj);
在指定位置增加一组元素
boolean addAll(int index, Collection c);
修改指定位置的元素
Object set(int index, Object element);
返回指定位置的元素
Object get(int index);
删除指定位置的元素,后面元素通通前移一位
boolean remove(int index);
返回第一个匹配元素的索引。如果没有该元素,返回-1
int indexOf(Object o);
返回最后一个匹配元素的索引。如果没有该元素,返回-1
int lastIndexOf(Object o);
取出集合中的子集合
List subList(int fromIndex, int toIndex);
为ListIterator接口实例化
ListIterator listIterator();
LinkedList类
特点
查询效率低,增删效率高,线程不安全
注意
不存在线程安全问题时,增加或删除元素较多用LinkedList,底层为双链表
对LinkedList的操作,其实就是对双链表的操作
方法
将指定元素插入该双向队列的开头
void addFirst(Object obj);
将指定元素插入该双向队列的末尾
void addLast(Object obj);
获取,但不删除双向队列的第一个元素
Object getFirst();
获取,但不删除双向队列的最后一个元素
Object getLast();
将指定的元素插入该双向队列的开头
boolean offerFirst(Object obj);
将指定的元素插入该双向队列的末尾
boolean offerLast(Object obj);
获取,但不删除该双向队列的第一个元素,如果些双向队列为空,则返回null
Object peekFirst();
获取,但不删除该双向队列的最后一个元素,如果些双向队列为空,则返回null
Object peekLast();
获取,并删除该双向队列的第一个元素,如果些双向队列为空,则返回null
Object pollFirst();
获取,并删除该双向队列的最后一个元素,如果些双向队列为空,则返回null
Object pollLast();
弹出该双向队列所表示的栈中的第一个元
Object pop();
将一个元素push进该双向队列所表示的栈中(头插入)
void push(Object e)
获取,并删除该双向队列的第一个元素
Object removeFirst()
并删除该双向队列的第一次出现的元素obj,返回值为boolean类型
Object removeFirstOccurrence(Object obj)
获取,并删除该双向队列的最后一个元素
Object removeLast()
删除该双向队列的最后一次出现的元素obj,返回值为boolean类型
Object removeLastOccurrence(Object obj)