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  }

 


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM