构造
LinkedList<E> list =new LinkedList<>(); //无参数
LinkedList<E> list =new LinkedList<>(同类或者子类);
LinkedList<E> list =new LinkedList<>(大小); //初始化大小
Queue<E> list =new LinkedList<>();
尾插
boolean add(E e)
list.add(元素);
指定位置插入
void add(int index, E element);
list.add(下标,元素);
尾插子类或同类
boolean addAll(Collection c);
list.addAll(同类或者子类);
删除指定下标元素
E remove(int index)
list.remove(元素下标);
删除遇到的指定元素
boolean remove(Object o)
list.remove(元素);
获取下标 index 位置元素
E get(int index);
list.get(下标位置);
将指定下标元素改成某个值
E set(int index, E element);
list.set(下标,元素);
清空
void clear()
list.clear();
判断是否有某个元素
//判断双向链表是否有某个元素
boolean contains(Object o);
list.contains(元素);
返回某个元素顺序所在下标
int indexOf(Object o);
list.indexOf(元素);
返回某个元素逆序所在下标
int lastIndexOf(Object o);
list.lastindexOf(元素);
截取List
List subList(int fromIndex, int toIndex);
获取元素个数
list.size();
获取迭代器
迭代器是LinkedList类的内部类,可以用这个类实现迭代的效果,这个类继承了ListIterator
list.listIterator();
-
在使用迭代器的过程中,it.hasNext()方法不涉及指针的移动,只是判断当前指针是否超出下标,也就是判断是否还有下一元素。
-
而it.next()方法从源码来看则是先将指针下移并且取得当前元素。整个过程中只有next()方法涉及指针的下移.
-
it.next本质是先获取当前元素,在移动指针到下一个元素
ListIterator<Integer> it = list.listIterator();
while(it.next()){
}
while(it.hasNext()){
it.next()
}
//两者都能遍历一遍
迭代
LinkedList list = new LinkedList<>();
foreach遍历
for (int e : list) {
System.out.print(e + " ");
}
**使用迭代器遍历—正向遍历 **
ListIterator<Integer> it = list.listIterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
使用反向迭代器—反向遍历
ListIterator<Integer> rit = list.listIterator(list.size());
while (rit.hasPrevious()) {
System.out.print(rit.previous() + " ");
}