开发手册 欢迎您!
软件开发者资料库

Java 9 - 集合工厂方法

Java 9集合工厂方法 - 从简单和简单的步骤学习Java 9,从基本到高级概念,包括概述,环境设置,模块系统,REPL(JShell),改进的JavaDocs,Multirelease JAR,Collection Factory Methods,Private Interface Methods, Process API,Stream API,Try with Resources,Optional Class,CompletableFuture API改进,Enhanced @Deprecated Annotation,Inner Class Diamond Operator,Multiresolution Image API,Miscellaneous Features。

使用Java 9,新的工厂方法被添加到List,Set和Map接口以创建不可变实例.这些工厂方法是方便工厂方法,以较简洁和简洁的方式创建集合.

创建集合的旧方法

import java.util.ArrayList;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 Tester {   public static void main(String []args) {      Set set = new HashSet<>();      set.add("A");      set.add("B");      set.add("C");      set = Collections.unmodifiableSet(set);      System.out.println(set);      List list = new ArrayList<>();      list.add("A");      list.add("B");      list.add("C");      list = Collections.unmodifiableList(list);      System.out.println(list);      Map map = new HashMap<>();      map.put("A","Apple");      map.put("B","Boy");      map.put("C","Cat");      map = Collections.unmodifiableMap(map);      System.out.println(map);   }}


输出

它将打印以下输出.

[A, B, C][A, B, C]{A=Apple, B=Boy, C=Cat}


新方法

使用java 9,将以下方法添加到List,Set和Map接口中与他们的重载对应物.

static  List of(E e1, E e2, E e3);static  Set  of(E e1, E e2, E e3);static  Map of(K k1, V v1, K k2, V v2, K k3, V v3);static  Map ofEntries(Map.Entry... entries)

注意事项

  • 对于List和Set接口,(...)方法被重载为0到10个参数,一个带有var args参数.

  • 对于Map接口,(...)方法重载为0到10个参数.

  • 如果Map接口的参数超过10个,则可以使用ofEntries(...)方法接受var args参数.

新创建集合的方法

import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.AbstractMap;import java.util.Map;import java.util.Set;public class Tester {   public static void main(String []args) {      Set set = Set.of("A", "B", "C");            System.out.println(set);      List list = List.of("A", "B", "C");      System.out.println(list);      Map map = Map.of("A","Apple","B","Boy","C","Cat");      System.out.println(map);        Map map1 = Map.ofEntries (         new AbstractMap.SimpleEntry<>("A","Apple"),         new AbstractMap.SimpleEntry<>("B","Boy"),         new AbstractMap.SimpleEntry<>("C","Cat"));      System.out.println(map1);   }}


输出

它将打印以下输出.

[A, B, C][A, B, C]{A=Apple, B=Boy, C=Cat}{A=Apple, B=Boy, C=Cat}