• Java ArrayList 与 LinkedList 的灵活选择


    Java ArrayList

    Java ArrayList 类是一个可变大小的数组,位于 java.util 包中。

    创建 ArrayList

    import java.util.ArrayList;
    ArrayList cars = new ArrayList(); // 创建一个 ArrayList 对象

    添加元素

    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
    

    访问元素

    cars.get(0); // 获取第一个元素

    修改元素

    cars.set(0, "Opel"); // 修改第一个元素
    

    删除元素

    cars.remove(0); // 删除第一个元素
    cars.clear(); // 删除所有元素
    

    ArrayList 大小

    cars.size(); // 获取 ArrayList 大小
    

    循环遍历 ArrayList

    for 循环:

    for (int i = 0; i < cars.size(); i++) {
      System.out.println(cars.get(i));
    }
    

    for-each 循环:

    for (String car : cars) {
      System.out.println(car);
    }
    

    使用其他类型

    ArrayList myNumbers = new ArrayList();
    myNumbers.add(10);
    myNumbers.add(15);
    myNumbers.add(20);
    myNumbers.add(25);
    

    对 ArrayList 进行排序

    import java.util.Collections;
    Collections.sort(cars); // 对字符串的 ArrayList 进行排序
    Collections.sort(myNumbers); // 对整数的 ArrayList 进行排序
    

    ArrayList 是 Java 中常用的数据结构,它可以存储各种类型的数据,并且可以根据需要调整大小。

    ArrayList 的优势:

    • 可变大小
    • 可以存储各种类型的数据
    • 提供多种方法来访问、修改和删除元素
    • 可以使用 Collections 类进行排序

    ArrayList 的劣势:

    • 速度比数组慢
    • 可能会浪费内存空间

    建议:

    • 当需要存储可变大小的数据集合时,使用 ArrayList
    • 当需要快速访问数据时,使用数组。
    • 当需要存储大量数据时,考虑使用其他数据结构,例如 HashMap

    Java LinkedList

    LinkedList 类与 ArrayList 类相似,但它们之间也有一些重要的区别。

    创建 LinkedList

    1. // 导入 LinkedList 类
    2. import java.util.LinkedList;
    3. public class Main {
    4. public static void main(String[] args) {
    5. LinkedList cars = new LinkedList<>();
    6. cars.add("Volvo");
    7. cars.add("BMW");
    8. cars.add("Ford");
    9. cars.add("Mazda");
    10. System.out.println(cars);
    11. }
    12. }

    ArrayList 与 LinkedList

    相同点:

    • 它们都实现了 List 接口,因此它们具有相同的方法。
    • 它们都可用于存储各种类型的数据。
    • 它们都允许您添加、删除和修改元素。

    不同点:

    • ArrayList 使用数组存储数据,而 LinkedList 使用链表存储数据。
    • ArrayList 通常更快,因为它可以直接访问元素。
    • LinkedList 更灵活,因为它可以更轻松地插入和删除元素。

    何时使用:

    • 如果您需要快速访问列表中的随机元素,请使用 ArrayList
    • 如果您需要经常插入和删除元素,请使用 LinkedList

    LinkedList 方法

    LinkedList 提供了一些 ArrayList 没有的方法,这些方法可以更有效地执行某些操作:

    方法描述
    addFirst()将元素添加到列表的开头。
    addLast()在列表的末尾添加元素。
    removeFirst()从列表的开头删除元素。
    removeLast()从列表的末尾删除元素。
    getFirst()获取列表开头的元素。
    getLast()获取列表末尾的元素。

    示例

    // 添加元素到列表的开头
    cars.addFirst("Toyota");
    // 添加元素到列表的末尾
    cars.addLast("Mercedes");
    // 删除列表开头的元素
    cars.removeFirst();
    // 删除列表末尾的元素
    cars.removeLast();
    // 获取列表开头的元素
    String firstCar = cars.getFirst();
    // 获取列表末尾的元素
    String lastCar = cars.getLast();
    

    LinkedList 是一种灵活的数据结构,可以有效地执行某些操作。如果您需要经常插入和删除元素,LinkedList 是一个不错的选择。

  • 相关阅读:
    第九章 泛型编程
    【每日一题】2. 两数相加
    【无标题】
    springboot 3.x 之 集成rabbitmq实现动态发送消息给不同的队列
    huggingface transformers库中LlamaForCausalLM
    GBase 8c 函数/存储过程参数(一)
    低代码服务商,中小型数字化软件服务商的新出路
    前端入门到入土?
    52 杨辉三角
    剑指 Offer II 034. 外星语言是否排序
  • 原文地址:https://blog.csdn.net/mnn12/article/details/136695150