📜  Java中的集合 unmodifiableCollection() 方法及示例(1)

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

Java中的集合 unmodifiableCollection() 方法及示例

在Java中,我们经常需要将一个可变的集合变为只读的集合。为了实现这个目标,Java提供了一个unmodifiableCollection()方法。

unmodifiableCollection()方法介绍

unmodifiableCollection()方法是Java集合框架中的一种方法。它可以将一个可变的集合变为只读的集合,从而防止在运行时修改集合。这个方法返回的集合是一个只读的集合,对它的修改操作都将被视为非法操作。

方法语法
public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)
方法参数
  • c - 需要变为只读的集合。
方法返回值
  • 只读的集合
方法示例

下面是一个示例,演示如何使用unmodifiableCollection()方法将一个可变的ArrayList变为只读的Collection

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<String>();
    list.add("Java");
    list.add("C++");
    list.add("Python");
    System.out.println("Original list: " + list);

    Collection<String> readOnly = Collections.unmodifiableCollection(list);
    System.out.println("Read-only collection: " + readOnly);

    // 修改只读集合将会抛出UnsupportedOperationException异常
    readOnly.add("Ruby");
  }
}

输出:

Original list: [Java, C++, Python]
Read-only collection: [Java, C++, Python]

Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.Collections$UnmodifiableCollection.add(Unknown Source)
	at Main.main(Main.java:12)

从输出结果可以看到,当我们尝试向只读集合readOnly中添加一个元素时,程序抛出了一个UnsupportedOperationException异常。

注意事项
  • 在Java中,只读集合是不可变的。如果需要修改集合,需要先将只读集合变成可变的集合。
  • 对只读集合的所有修改操作都将会抛出UnsupportedOperationException异常。