📜  Java LinkedList类(1)

📅  最后修改于: 2023-12-03 15:01:31.283000             🧑  作者: Mango

Java LinkedList类

LinkedList类是Java Collections框架提供的一个非常重要的集合类,LinkedList存储的是有序的元素序列,每个元素可以作为一个节点存储在LinkedList中。本文将为你介绍Java LinkedList类的使用。

LinkedList的特点
  1. 链表结构:由于LinkedList底层结构是链表,因此可以高效的添加/删除操作,而ArrayList因为是基于数组的,因此添加/删除操作效率低。
  2. 双向链表:LinkedList不仅是链表,还是双向链表,每个节点都同时拥有上一个节点和下一个节点,因此在进行反向遍历时,效率也更高。
  3. 非线程安全:LinkedList是非线程安全的,如果多线程并发修改一个LinkedList,可能会导致数据不一致的问题。
LinkedList的常用方法
添加元素操作
  1. add(E e): 添加元素到LinkedList末尾,并返回是否添加成功。
  2. add(int index, E element): 在指定位置插入指定元素。
  3. addFirst(E e): 将元素插入LinkedList的头部(即第一个位置)。
  4. addLast(E e): 将元素插入LinkedList的尾部(即最后一个位置)。
LinkedList<String> list = new LinkedList<>();
list.add("hello");
list.add("world");
list.addFirst("java");
list.addLast("program");
list.add(2, "data");
删除元素操作
  1. remove(Object o): 从LinkedList中删除指定元素。
  2. remove(int index): 从LinkedList中删除指定位置的元素。
  3. removeFirst(): 删除LinkedList的头部元素,并返回删除的元素。
  4. removeLast(): 删除LinkedList的尾部元素,并返回删除的元素。
LinkedList<String> list = new LinkedList<>();
list.add("hello");
list.add("world");
list.add("java");
list.add("program");
list.remove("world");
list.remove(2);
list.removeFirst();
list.removeLast();
获取元素操作
  1. get(int index): 获取LinkedList中指定位置的元素。
  2. getFirst(): 获取LinkedList的头部元素,并返回头部元素。
  3. getLast(): 获取LinkedList的尾部元素,并返回尾部元素。
  4. indexOf(Object o): 获取指定元素在LinkedList中第一次出现的位置。
  5. lastIndexOf(Object o): 获取指定元素在LinkedList中最后一次出现的位置。
LinkedList<String> list = new LinkedList<>();
list.add("hello");
list.add("world");
list.add("java");
list.add("program");
System.out.println(list.get(1));
System.out.println(list.getFirst());
System.out.println(list.getLast());
System.out.println(list.indexOf("world"));
System.out.println(list.lastIndexOf("java"));
其他操作
  1. size(): 获取LinkedList中元素的个数。
  2. clear(): 删除LinkedList中的所有元素。
  3. isEmpty(): 判断LinkedList是否为空。
  4. set(int index, E element): 将LinkedList中指定位置的元素替换为指定元素。
LinkedList<String> list = new LinkedList<>();
list.add("hello");
list.add("world");
list.add("java");
list.add("program");
System.out.println(list.size());
list.clear();
System.out.println(list.isEmpty());
list.set(1, "data");
总结

LinkedList作为一种非常常用的数据结构,相信在Java开发中也是不可或缺的。我们需要根据具体的需求,合理选择适合的数据结构进行处理。