Java Collections  unmodifiableList()
 
 
 
  Java集合类的
  unmodifiableList()方法用于获取不可修改的指定列表的视图。如果尝试直接或通过其迭代器修改返回的列表,则会导致UnsupportedOperationException。
 
语法
 
 以下是
  unmodifiableList的声明()方法: 
 
 
  
  
public static <T> List<T> unmodifiableList(List<? extends T> list)
 
   
  
参数
 
 
 
   
   | 参数 |  
   说明 |  
   必需/可选 |  
  
 
   
   | list |  
   这是要返回不可修改视图的列表。 |  
   必需 |  
  
 
 
 
返回
 
 
  unmodifiableList()方法返回指定列表的不可修改视图。
 
异常
 
 不适用
 
示例1 
 
 
  
  
import java.util.*;
public class CollectionsUnmodifiableListExample1 {
    public static void main(String[] args) {
          List<String> list = new ArrayList<>();
        Collections.addAll(list, "Google", "Mozila FireFox", "Yahoo");
        List<String> list2 = Collections.unmodifiableList(list);
        System.out.println("Unmodifiable List: " + list2);
        list.add("Safari");
        System.out.print("Unmodifiable List after adding element to the list:");
        System.out.println(list2);
        }
}
 
   
  
 
 输出:  
 
 
  
  
Unmodifiable List: [Google, Mozila FireFox, Yahoo]
Unmodifiable List after adding element to the list:[Google, Mozila FireFox, Yahoo, Safari]
 
   
  
示例2 
 
 
  
  
import java.util.*;
public class CollectionsUnmodifiableListExample2 {
    public static void main(String[] args) {
          List<String> list = new ArrayList<>();
        Collections.addAll(list, "Google", "Mozila FireFox", "Yahoo");
        List<String> list2 = Collections.unmodifiableList(list);
        System.out.println("Unmodifiable List: " + list2);
        list2.add("Safari");       
        }
}
 
   
  
 
 输出:  
 
 
  
  
Unmodifiable List: [Google, Mozila FireFox, Yahoo]
Exception in thread "main" java.lang.UnsupportedOperationException
    at java.base/java.util.Collections$UnmodifiableCollection.add(Collections.java:1056)
    at myPackage.UnmodifiableListExample2.main(UnmodifiableListExample2.java:9)
 
   
  
示例3 
 
 
  
  
import java.util.*;
public class CollectionsUnmodifiableListExample3 {
    public static void main(String[] args) {
         ArrayList<Integer> list = new ArrayList<>();
         list.add(10);      
         list.add(20);
         list.add(30);      
         list.add(40);            
         List<Integer> list2 = Collections.unmodifiableList(list);
         System.out.println("Unmodifiable list: " + list2);                          
         list.add(50);
         System.out.println("Unmodifiable list after adding (50): "+list);
       }
}
 
   
  
 
 输出:  
 
 
  
  
Unmodifiable list: [10, 20, 30, 40]
Unmodifiable list after adding (50): [10, 20, 30, 40, 50]