Bootstrap

Java列表示例

示例1:使用ArrayList创建并操作列表

ArrayListList接口最常用的实现之一,它内部使用数组来存储元素,因此对于随机访问具有很高的效率。但是,当涉及到频繁的插入或删除操作时,它的性能可能会受到影响,因为这些操作可能需要移动大量元素以保持索引的一致性。

import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
    public static void main(String[] args) {
        // 创建一个ArrayList实例
        List<String> names = new ArrayList<>();
        
        // 添加元素到列表
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        // 修改指定位置的元素
        names.set(1, "Bobby");

        // 获取指定位置的元素
        System.out.println("The second name is: " + names.get(1));

        // 删除指定位置的元素
        String removedName = names.remove(2);
        System.out.println("Removed name: " + removedName);

        // 遍历列表
        for (String name : names) {
            System.out.println(name);
        }

        // 输出列表大小
        System.out.println("Size of list: " + names.size());
    }
}

示例2:使用LinkedList处理频繁的插入与删除

LinkedList实现了List接口,并且基于双向链表的数据结构。这意味着它可以高效地进行插入和删除操作,尤其是在列表的两端。然而,对于随机访问而言,LinkedList的表现不如ArrayList好,因为它必须从头或尾开始遍历节点直到目标位置。

import java.util.LinkedList;
import java.util.List;

public class LinkedListExample {
    public static void main(String[] args) {
        // 创建一个LinkedList实例
        List<String> queue = new LinkedList<>();

        // 向列表两端添加元素
        ((LinkedList<String>) queue).addFirst("first");
        ((LinkedList<String>) queue).addLast("last");

        // 从列表两端移除元素
        System.out.println("Removed from front: " + ((LinkedList<String>) queue).removeFirst());
        System.out.println("Removed from back: " + ((LinkedList<String>) queue).removeLast());

        // 在任意位置插入元素
        queue.add(0, "middle");

        // 遍历列表
        for (String item : queue) {
            System.out.println(item);
        }
    }
}

示例3:使用List.of()创建不可变列表

引入了一个新的静态工厂方法List.of(),用于快速创建固定内容的不可变列表。这种方法非常适合于那些不需要改变的集合,因为它提供了一种简洁的方式来定义常量集合,而且由于它是不可变的,所以更加安全。

import java.util.List;

public class ImmutableListExample {
    public static void main(String[] args) {
        // 使用List.of()创建一个不可变列表
        List<String> immutableList = List.of("red", "green", "blue");

        // 尝试修改列表会抛出UnsupportedOperationException异常
        try {
            immutableList.add("yellow"); // 这行代码将导致运行时错误
        } catch (UnsupportedOperationException e) {
            System.out.println("Cannot modify an immutable list.");
        }

        // 安全地读取列表内容
        for (String color : immutableList) {
            System.out.println(color);
        }
    }
}

;