Java 示例 - 只读集合

  • 问题描述

    如何将集合设为只读?
  • 解决方案

    以下示例显示了如何使用 Collection 类的 Collections.unmodifiableList() 方法将集合设为只读。
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    public class Main {
       public static void main(String[] argv) throws Exception {
          List stuff = Arrays.asList(new String[] { "a", "b" });
          List list = new ArrayList(stuff);
          list = Collections.unmodifiableList(list);
          try {
             list.set(0, "new value");
          } catch (UnsupportedOperationException e) {
          }
          Set set = new HashSet(stuff);
          set = Collections.unmodifiableSet(set);
          Map map = new HashMap();
          map = Collections.unmodifiableMap(map);
          System.out.println("Collection is read-only now.");
       }
    }
    
  • 结果

    上面的代码示例将产生以下结果。
    
    Collection is read-only now.