2.集合工厂

针对List、Set、Map集合新增了of工厂方法,创建的集合均是不可变的, 任何修改操作都会参数UOE(UnsupportedOperationException)。

  1. List
    不允许有null元素
     // 不能有null元素 List<String> nullError = List.of(null);
     // 空为java.util.ImmutableCollections#EMPTY_LIST
     List<String> empty = List.of();
     // 创建1-2个元素的list实现类为java.util.ImmutableCollections.List12
     List<String> list = List.of("s1", "s2");
     // 3个元素及以上实现类为java.util.ImmutableCollections.ListN
     List<String> more = List.of("s1", "s2", "s3");
    
  2. Set
    不允许有重复或null元素
     // 不允许重复或者null元素
     // Set<String> objects = Set.of(null);
     // Set<String> set = Set.of("s1", "s1");
     // 空为java.util.ImmutableCollections#EMPTY_SET
     Set<String> s0 = Set.of();
     // 创建1-2个元素的set实现类为java.util.ImmutableCollections.Set12
     Set<String> s1 = Set.of("s1", "s2");
     // 3个元素及以上实现类java.util.ImmutableCollections.SetN
     Set<String> sn = Set.of("s1", "s2", "s3");
    
  3. Map
    不允许null的key或value,且不允许重复key
     // NPE
     // Map.of("s", null);
     // 重复
     // Map.of("s", 1, "s", 2);
     // 一个key/value对实现类为java.util.ImmutableCollections.Map1
     Map<String, String> map1 = Map.of("key", "value");
     // 2个key/value对及以上实现类为java.util.ImmutableCollections.MapN
     Map<String, Integer> mapN = Map.of("k1", 1, "k2", 2);