📜  java 简单列表 - Java (1)

📅  最后修改于: 2023-12-03 14:42:19.616000             🧑  作者: Mango

Java 简单列表

在 Java 编程中,列表是一种常见的数据结构。它允许我们存储一组有序的元素,并对这些元素进行添加、删除和查找等操作。Java 提供了多种实现列表的方式,其中最常用的是 ArrayList 和 LinkedList。

ArrayList

ArrayList 是 Java 中最基本的列表实现之一。它基于数组实现,具有以下特点:

  • 可以自动扩容,无需手动管理数组容量;
  • 可以随机访问任意索引处的元素,时间复杂度为 O(1);
  • 在末尾添加或删除元素的时间复杂度为 O(1),在其他位置添加或删除元素的时间复杂度为 O(n);
  • 不适合大量的中间插入或删除操作,因为每次操作都要移动后面的元素。

以下是一个使用 ArrayList 的示例代码:

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
System.out.println(list.get(1)); // 输出 "banana"
list.remove(0);
System.out.println(list); // 输出 "[banana, orange]"
LinkedList

LinkedList 是 Java 中另一种常用的列表实现。它基于双向链表实现,具有以下特点:

  • 可以在任意位置插入或删除元素,时间复杂度为 O(1);
  • 不支持随机访问任意索引处的元素,需要从头或从尾开始遍历;
  • 在末尾添加或删除元素的时间复杂度为 O(1);
  • 不像 ArrayList 那样需要额外的内存来存储备用元素。

以下是一个使用 LinkedList 的示例代码:

List<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");
System.out.println(list.get(1)); // 会抛出 UnsupportedOperationException 异常
list.remove(0);
System.out.println(list); // 输出 "[banana, orange]"

总的来说,ArrayList 适合频繁访问和修改末尾元素的场景,而 LinkedList 则适合频繁插入和删除任意位置的场景。根据具体的需求选择合适的实现方式非常重要。

参考资料:Java List Tutorial with Examples