一、LinkedList的概述
- LinkedList是双向链表实现的List
- LinkedList是非线程安全的
- LinkedList元素允许为null,允许重复元素
- LinkedList是基于链表实现的,因此插入删除效率高,查找效率低(虽然有一个加速动作)
- LinkedList是基于链表实现的,因此不存在容量不足的问题,所以没有扩容的方法
- LinkedList还实现了栈和队列的操作方法,因此也可以作为栈、队列和双端队列来使用
二、 LinkedList的方法
方法1:add(E e)/list.addLast(E e) 作用:将新元素添加至链表的尾部
方法2:addFirst(E e) 作用:将新元素添加至链表的头部
方法3:get(int index) 作用:获取元素,根据元素的下标位置,在链表中通过遍历,查找获取元素
方法4:getFirst() 作用:获取链表的尾元素
方法5:getLast() 作用:获取链表的尾元素
方法6:remove(int index) 作用:根据下标,在链表中删除元素
方法7:remove(Object o) 作用:根据值,在链表中删除元素
方法8:removeFirst() 作用:删除链表的头元素
方法9:removeLast() 作用:删除链表的尾元素
LinkedList<String> list = new LinkedList<String>();
// 添加新元素
// add()/list.addLast() : 将新元素添加至链表的尾部
list.add("s1");
list.add("s2");
list.add("s3");
list.add("s4");
list.addLast("s5");
System.out.println(list);
// 将新元素添加至链表的尾部
list.addFirst("sx");
System.out.println(list);
// 获取元素
// 根据元素的下标位置,在链表中通过遍历,查找获取元素
String item = list.get(1);
System.out.println(item);
// 获取链表的头元素和尾元素
String first = list.getFirst();
String last = list.getLast();
// 删除元素
list.remove(2); // 根据下标,在链表中删除元素
list.remove("s1"); // 根据值,在链表中删除元素
list.removeFirst(); // 删除链表的头元素
list.removeLast(); // 删除链表的尾元素