LinkedList的本质是双向链表。它也可以被当作堆栈、队列或双端队列进行操作。它采用的是链表式储存,所以比较适合用来执行插入,删除等功能,减少在列表中插入或删除元素所付出的代价。
一、基本使用
1.添加
boolean add(Object element) 它将元素附加到列表的末尾。
boolean add(int index,Object element) 指定位置插入。 void addFirst(E element) 元素附加到列表的头部 void addLast(Eelement) 元素附加到列表的尾部
LinkedList<Integer> linkedList = new LinkedList<>(); linkedList.add(1); linkedList.add(2); linkedList.add(3); linkedList.addFirst(4); linkedList.addFirst(5); linkedList.addLast(6); linkedList.add(2,9); System.out.println(linkedList);
输出
[5, 4, 9, 1, 2, 3, 6]
2.获取
Object add(int index) 它将元素附加到列表的末尾。
Object getFirst() 它返回链表的第一个元素。
Object getLast() 它返回链接列表的最后一个元素。
LinkedList<Integer> linkedList = new LinkedList<>(); linkedList.add(1); linkedList.add(2); linkedList.add(3); System.out.println("获取下标为1的元素:"+linkedList.get(1)); System.out.println("链表的第一个元素:"+linkedList.getFirst()); System.out.println("链表的最后一个元素:"+linkedList.getLast());
3.查询
boolean contains(Object element)如果元素存在于列表中,则返回true。
LinkedList<Integer> linkedList = new LinkedList<>(); linkedList.add(1); linkedList.add(2); linkedList.add(3); linkedList.add(1); System.out.println("是否出现过元素1:"+linkedList.contains(1)); System.out.println("是否出现过元素4:"+linkedList.contains(4));
输出
是否出现过元素1:true 是否出现过元素4:false
4.修改
Object set(int index,Object element)它用于用新元素替换列表中的现有元素
LinkedList<Integer> linkedList = new LinkedList<>(); linkedList.add(1); linkedList.add(2); linkedList.add(3); linkedList.add(1); linkedList.set(1,9); System.out.println("更新过的链表:"+linkedList);
输出
更新过的链表:[1, 9, 3, 1]
5.删除
E remove() 删除第一个元素
E remove(int location) 删除指定位置的元素
E removeFirst() 删除并返回链接列表的头部一个元素
E removeLast() 删除并返回链接列表的尾部一个元素
LinkedList<Integer> linkedList = new LinkedList<>(); linkedList.add(1); linkedList.add(2); linkedList.add(3); linkedList.add(1); linkedList.remove(); //删除第一个元素 linkedList.remove(2);//删除指定位置的元素 System.out.println(linkedList);
6. 清空
void clear():它删除列表中的所有元素。
LinkedList<Integer> linkedList = new LinkedList<>(); linkedList.add(1); linkedList.add(2); linkedList.add(3); linkedList.add(1); linkedList.clear(); System.out.println(linkedList);