为了防止ArrayList列表在不应该被修改时被更改,可以使用Collections类的unmodifiableList方法来创建一个不可修改的列表。以下是一个示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ImmutableArrayListExample {
public static void main(String[] args) {
List mutableList = new ArrayList<>();
mutableList.add("Item 1");
mutableList.add("Item 2");
mutableList.add("Item 3");
List immutableList = Collections.unmodifiableList(mutableList);
// 尝试修改不可修改的列表
try {
immutableList.add("Item 4"); // 抛出UnsupportedOperationException异常
} catch (UnsupportedOperationException e) {
System.out.println("Cannot modify immutable list.");
}
// 尝试修改原始可变列表
mutableList.add("Item 4"); // 原始可变列表可以被修改
System.out.println("Mutable list: " + mutableList);
System.out.println("Immutable list: " + immutableList);
}
}
在这个例子中,我们创建了一个可变列表mutableList
,然后使用Collections.unmodifiableList
方法将其转换为一个不可修改的列表immutableList
。当我们尝试修改immutableList
时,会抛出UnsupportedOperationException
异常。然而,当我们修改原始的可变列表mutableList
时,不会有异常抛出。