JDK9的新特性之一:集合接口的of()方法

JDK9的新特性--集合接口的of()方法

JDK9的新特性:
  
List接口, Set接口, Map接口:里边增加了一个静态的方法of(), 可以给集合一次性添加多个元素。
   static <E> List<E> of (E... elements); 

使用前提:当集合中存储的元素的个数已经确定了,不在改变时使用

注意:

1.of方法只适用于List接口, Set接口, Map接口,不适用于接接口的实现类

2.of方法的返回值是一个不能改变的集合,集合不能再使用add, put方法添加元素,会抛出异常

3.Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常

 1  package JDK9对集合中元素添加的新优化;
 2  3  import java.util.List;
 4  import java.util.Map;
 5  import java.util.Set;
 6  7  /**
 8   * @Author Admin
 9   * @Classname DemoJDK9
10   * @Package JDK9对集合中元素添加的新优化
11   * @GreatDate 2020/04/22 13:22:37
12   * @Description TODO JDK9的新特性
13   */
14  /*
15  JDK9的新特性:
16      List接口, Set接口, Map接口:里边增加了一个静态的方法of(),
17                                  可以给集合一次性添加多个元素。
18      static <E> List<E> of (E... elements);
19  使用前提:当集合中存储的元素的个数已经确定了,不在改变时使用
20  注意:
21      1.of方法只适用于List接口, Set接口, Map接口,不适用于接接口的实现类
22      2.of方法的返回值是一个不能改变的集合,集合不能再使用add, put方法添加元素,会抛出异常
23      3.Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常
24   */
25  public class DemoJDK9 {
26      public static void main(String[] args) {
27          List<String> list = List.of("a", "b", "a", "C");
28          System.out.println(list);//[a, b, a, C]
29          // list.add("w");//UnsupportedOperationException 不支持操作异常
30          //原因:使用了of()方法,就不能再添加了,和数组一样了,长度固定
31          System.out.println("-----------------------------");
32          
33          //Set<String> set = Set.of("a", "b", "d", "d");
34          Set<String> set = Set.of("a", "b", "d");
35          System.out.println(set);//[b, a, d] IllegalArgumentException 非法参数异常
36          //原因:set集合中不允许出现重复元素,因此of()方法传参也是要唯一的。
37          // set.add("w");//UnsupportedOperationException 不支持操作异常
38          System.out.println("-----------------------------");
39      
40          //Map<String, Integer> map = Map.of("张三", 185, "李四", 168, "王五", 175,"张三",168);
41          Map<String, Integer> map = Map.of("张三", 185, "李四", 168, "王五", 175);
42          //IllegalArgumentException 非法参数异常
43          System.out.println(map);//{李四=168, 王五=175, 张三=185}
44          // map.put("赵六",200);//UnsupportedOperationException 不支持操作异常
45         
46      }
47  }

 

 

猜你喜欢

转载自www.cnblogs.com/elvin-j-x/p/12892056.html