当前位置:   article > 正文

Java基础--LinkedList类实现链表_java linkedlist 如何实现链

java linkedlist 如何实现链

LinkedList是Java中实现链表的一个类,它实现了List接口,表示一个双向链表的集合。

LinkedList是Java集合框架中实现了List接口的双向链表数据结构。它是由一系列节点组成的,每个节点都包含一个元素和指向前一个节点和后一个节点的引用,即链表中的每个节点都有一个指向前一个节点和后一个节点的指针。

以下是几种常见方法API:

  1. LinkedList(): 创建一个新的空链表。
  2. add(E element): 将指定的元素添加到链表的末尾。
  3. add(int index, E element): 将指定的元素插入到链表的指定位置。
  4. get(int index): 返回链表中指定位置的元素。
  5. remove(int index): 删除链表中指定位置的元素,并返回被删除的元素。
  6. size(): 返回链表中元素的数量。
  7. clear(): 清空链表中的所有元素。
  8. contains(Object element): 检查链表中是否包含指定的元素,返回true或false。
  9. isEmpty(): 检查链表是否为空,返回true或false。
  10. indexOf(Object element): 返回链表中第一次出现指定元素的索引位置,如果不存在则返回-1。
  11. lastIndexOf(Object element): 返回链表中最后一次出现指定元素的索引位置,如果不存在则返回-1。
  12. toArray(): 将链表转换为数组。

以上每个API对应的代码实例如下:

  1. import java.util.LinkedList;
  2. public class LinkedListExample {
  3. public static void main(String[] args) {
  4. // 创建一个新的空链表
  5. LinkedList<String> linkedList = new LinkedList<>();
  6. // 将元素添加到链表末尾
  7. linkedList.add("苹果");
  8. linkedList.add("香蕉");
  9. linkedList.add("橙子");
  10. // 在指定位置插入元素
  11. linkedList.add(1, "葡萄");
  12. // 获取指定位置的元素
  13. String fruit = linkedList.get(2);
  14. System.out.println("索引为2的元素: " + fruit);
  15. // 移除指定位置的元素
  16. String removedFruit = linkedList.remove(0);
  17. System.out.println("移除的元素: " + removedFruit);
  18. // 获取链表的大小
  19. int size = linkedList.size();
  20. System.out.println("大小: " + size);
  21. // 检查链表是否为空
  22. boolean empty = linkedList.isEmpty();
  23. System.out.println("是否为空: " + empty);
  24. // 检查链表是否包含指定元素
  25. boolean contains = linkedList.contains("苹果");
  26. System.out.println("是否包含苹果: " + contains);
  27. // 获取某个元素的首次出现位置的索引
  28. int index = linkedList.indexOf("香蕉");
  29. System.out.println("香蕉的索引: " + index);
  30. // 获取某个元素最后一次出现位置的索引
  31. int lastIndex = linkedList.lastIndexOf("橙子");
  32. System.out.println("橙子最后一次出现的索引: " + lastIndex);
  33. // 将链表转换为数组
  34. Object[] array = linkedList.toArray();
  35. // 清空链表
  36. linkedList.clear();
  37. }
  38. }

LinkedList类:LinkedList是Java中实现链表的一个类。它实现了List接口,表示一个双向链表的集合,如下是几种常用API:

  • addFirst(E element):将元素添加到链表的开头。
  • addLast(E element):将元素添加到链表的末尾。
  • getFirst():获取链表的第一个元素。
  • getLast():获取链表的最后一个元素。
  • removeFirst():删除并返回链表的第一个元素。
  • removeLast():删除并返回链表的最后一个元素。

以下是每个API实例的代码;

  1. import java.util.LinkedList;
  2. public class Main {
  3. public static void main(String[] args) {
  4. // 创建一个LinkedList对象
  5. LinkedList<String> linkedList = new LinkedList<>();
  6. // 添加元素到链表的开头
  7. linkedList.addFirst("A");
  8. System.out.println(linkedList); // 输出:[A]
  9. // 添加元素到链表的末尾
  10. linkedList.addLast("B");
  11. System.out.println(linkedList); // 输出:[A, B]
  12. // 获取链表的第一个元素
  13. String firstElement = linkedList.getFirst();
  14. System.out.println("First element: " + firstElement); // 输出:First element: A
  15. // 获取链表的最后一个元素
  16. String lastElement = linkedList.getLast();
  17. System.out.println("Last element: " + lastElement); // 输出:Last element: B
  18. // 删除并返回链表的第一个元素
  19. String removedFirstElement = linkedList.removeFirst();
  20. System.out.println("Removed first element: " + removedFirstElement); // 输出:Removed first element: A
  21. System.out.println(linkedList); // 输出:[B]
  22. // 删除并返回链表的最后一个元素
  23. String removedLastElement = linkedList.removeLast();
  24. System.out.println("Removed last element: " + removedLastElement); // 输出:Removed last element: B
  25. System.out.println(linkedList); // 输出:[]
  26. }
  27. }

List接口:List是一个接口,它可以由不同的类来实现,包括ArrayList和LinkedList等,所以List接口可以定义链表的基本操作,包括增删改查等,如下是几种常用API:

  • add(E element):将元素添加到链表的末尾。
  • add(int index, E element):将元素插入到指定位置。
  • remove(int index):删除指定位置的元素。
  • get(int index):获取指定位置的元素。
  • set(int index, E element):将指定位置的元素替换为新的元素。
  • size():返回链表的大小。

以下是每个API实例的代码;

  1. import java.util.List;
  2. import java.util.ArrayList;
  3. public class Main {
  4. public static void main(String[] args) {
  5. // 创建一个List对象
  6. List<String> list = new ArrayList<>();
  7. // 将元素添加到链表的末尾
  8. list.add("A");
  9. list.add("B");
  10. list.add("C");
  11. System.out.println(list); // 输出:[A, B, C]
  12. // 将元素插入到指定位置
  13. list.add(1, "D");
  14. System.out.println(list); // 输出:[A, D, B, C]
  15. // 删除指定位置的元素
  16. list.remove(2);
  17. System.out.println(list); // 输出:[A, D, C]
  18. // 获取指定位置的元素
  19. String element = list.get(1);
  20. System.out.println("Element: " + element); // 输出:Element: D
  21. // 将指定位置的元素替换为新的元素
  22. list.set(0, "E");
  23. System.out.println(list); // 输出:[E, D, C]
  24. // 返回链表的大小
  25. int size = list.size();
  26. System.out.println("Size: " + size); // 输出:Size: 3
  27. }
  28. }

Iterator接口:Iterator接口用于遍历链表,常用两个API如下:

  • hasNext():判断是否还有下一个元素
  •  next():返回下一个元素

以下是两个API实例的代码;

  1. import java.util.List;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4. public class Main {
  5. public static void main(String[] args) {
  6. // 创建一个List对象
  7. List<String> list = new ArrayList<>();
  8. // 添加元素到链表
  9. list.add("A");
  10. list.add("B");
  11. list.add("C");
  12. // 获取Iterator对象
  13. Iterator<String> iterator = list.iterator();
  14. // 判断是否还有下一个元素
  15. while (iterator.hasNext()) {
  16. // 返回下一个元素
  17. String element = iterator.next();
  18. System.out.println("Element: " + element);
  19. }
  20. }
  21. }

附:以上内容均为自己撰写,若有错误,将在第一时间修改。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/777316
推荐阅读
相关标签
  

闽ICP备14008679号