📜  java 创建不可修改的列表 - Java (1)

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

Java 创建不可修改的列表

介绍

列表是在Java中常用的数据结构之一。通常,我们可以创建一个可变的列表,可以向其中添加或删除元素。但有时,我们需要创建一个不可修改的列表,也就是在创建后不能向其中添加或删除元素。这在一些场景下很有用,比如当我们需要向其他类或对象传递一个列表但又不希望被修改时。

创建不可修改的列表

Java中提供了一种创建不可修改的列表的方法,就是使用 Collections.unmodifiableList() 方法。这个方法返回的是一个包装了原始列表的不可修改的列表,任何对原始列表的修改操作都会抛出 UnsupportedOperationException 异常。

下面是一个示例代码:

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

public class ImmutableArrayListExample {
    public static void main(String[] args) {
        List<String> mutableList = new ArrayList<>();
        mutableList.add("Java");
        mutableList.add("Python");
        mutableList.add("C++");
        
        List<String> immutableList = Collections.unmodifiableList(mutableList);
        
        // immutableList.add("JavaScript"); // 会抛出 UnsupportedOperationException 异常
        
        System.out.println("Mutable List: " + mutableList);
        System.out.println("Immutable List: " + immutableList);
    }
}

在这个示例中,我们首先创建了一个可变的列表 mutableList,然后使用 Collections.unmodifiableList() 方法创建了一个不可修改的列表 immutableList。接着我们尝试向 immutableList 中添加一个元素,会发现会抛出 UnsupportedOperationException 异常。

最后,我们分别输出了 mutableListimmutableList 的元素,可以看出 mutableList 中已经包含了新添加的元素,而 immutableList 不会包含新添加的元素。

总结

本文介绍了如何在Java中创建不可修改的列表,使用 Collections.unmodifiableList() 方法可以将可变的列表包装成一个不可修改的列表。在需要传递列表但不希望被修改的场景下,这种方法非常有用。但需要注意的是,在不可修改的列表中添加或删除元素会导致 UnsupportedOperationException 异常。