Méthodes de fabrique de collections Java 9

Java 9 新特性Nouveautés de Java 9

En Java 9, de nouvelles méthodes de fabrique statiques dans les interfaces List, Set et Map peuvent créer des instances immuables de ces collections.

Ces méthodes de fabrique offrent un moyen plus concis de créer des collections.

Création de collections avec l'ancienne méthode

Exemple

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<String> set = new HashSet<>(); set.add("A"); set.add("B"); set.add("C"); set = Collections.unmodifiableSet(set); System.out.println(set); List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list = Collections.unmodifiableList(list); System.out.println(list); Map<String, String> map = new HashMap<>(); map.put("A","Apple"); map.put("B","Boy"); map.put("C","Cat"); map = Collections.unmodifiableMap(map); System.out.println(map); } }

La sortie est :

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

Création de collections avec la nouvelle méthode

Dans Java 9, les méthodes suivantes ont été ajoutées aux interfaces List, Set et Map ainsi que leurs surcharges.

static <E> List<E> of(E e1, E e2, E e3);
static <E> Set<E>  of(E e1, E e2, E e3);
static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3);
static <K,V> Map<K,V> ofEntries(Map.Entry<? extends K,? extends V>... entries)
  • Pour les interfaces List et Set, la méthode of(...) est surchargée avec différentes méthodes pour 0 à 10 paramètres.

  • Pour l'interface Map, la méthode of(...) est surchargée avec différentes méthodes pour 0 à 10 paramètres.

  • Pour l'interface Map, si plus de 10 paramètres sont nécessaires, vous pouvez utiliser la méthode ofEntries(...).

Création de collections avec la nouvelle méthode

Exemple

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<String> set = Set.of("A", "B", "C"); System.out.println(set); List<String> list = List.of("A", "B", "C"); System.out.println(list); Map<String, String> map = Map.of("A","Apple","B","Boy","C","Cat"); System.out.println(map); Map<String, String> map1 = Map.ofEntries ( new AbstractMap.SimpleEntry<>("A","Apple"), new AbstractMap.SimpleEntry<>("B","Boy"), new AbstractMap.SimpleEntry<>("C","Cat")); System.out.println(map1); } }

La sortie est :

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

Java 9 新特性Nouveautés de Java 9

Autres extensions