Java教程

Java Collections unmodifiableCollection()

Java集合类的 unmodifiableCollection()方法用于获取不可修改的指定集合的​​视图。如果尝试直接或通过其迭代器修改返回的集合,则将导致UnsupportedOperationException。

语法

以下是 unmodifiableCollection()方法的声明:
public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)

参数

参数 说明 必需/可选
c 这是要返回不可修改视图的集合。 必需

返回

unmodifiableCollection()方法返回指定集合的​​不可修改视图。

异常

不适用

示例1

import java.util.*;
public class CollectionsUnmodifiableCollectionExample1 {
    public static void main(String[] args) {
          Collection<String> c = new ArrayList<>();
        Collections.addAll(c, "Google", "Mozila FireFox", "Yahoo");
        Collection<String> c2 = Collections.unmodifiableCollection(c);
        System.out.println("Unmodifiable Collection: " + c2);
        c.add("Safari");
        System.out.println("Unmodifiable Collection after adding element to the original one:");
        System.out.println(c2);
        }
}
输出:
Unmodifiable Collection: [Google, Mozila FireFox, Yahoo]
Unmodifiable Collection after adding element to the original one:
[Google, Mozila FireFox, Yahoo, Safari]

示例2

import java.util.*;
public class CollectionsUnmodifiableCollectionExample2 {
    public static void main(String[] args) {
          Collection<String> c = new ArrayList<>();
        Collections.addAll(c, "Google", "Mozila FireFox", "Yahoo");
        System.out.println("Initial Collection: "+ c);
        Collection<String> c2 = Collections.unmodifiableCollection(c);       
        c2.add("Safari");      
        }
}
输出:
Initial Collection: [Google, Mozila FireFox, Yahoo]
Exception in thread "main" java.lang.UnsupportedOperationException
    at java.base/java.util.Collections$UnmodifiableCollection.add(Collections.java:1056)
    at myPackage.UnmodifiableCollectionExample2.main(UnmodifiableCollectionExample2.java:9) 

示例3

import java.util.*;
public class CollectionsUnmodifiableCollectionExample3 {
    public static void main(String[] args) {
         Collection<Integer> coll = new ArrayList<>();
         coll.add(10);      
         coll.add(20);
         coll.add(30);      
         coll.add(40);            
         Collection<Integer> coll2 = Collections.unmodifiableCollection(coll);
         System.out.println("Unmodifiable collection: " + coll2);                    
         coll.add(50);
         System.out.print("Unmodifiable collection after adding (50): "+coll);
       }
} 
输出:
Unmodifiable collection: [10, 20, 30, 40]
Unmodifiable collection after adding (50): [10, 20, 30, 40, 50]

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4