Java 9 Collection-Factory-Methoden
Neue Funktionen in Java 9
In Java 9 können neue statische Factory-Methoden in den Schnittstellen List, Set und Map unveränderliche Instanzen dieser Collections erstellen.
Diese Factory-Methoden bieten einen prägnanteren Weg, Sammlungen zu erstellen.
Sammlungen mit der alten Methode erstellen
Beispiel
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);
}
}
Die Ausgabe ist:
[A, B, C]
[A, B, C]
{A=Apple, B=Boy, C=Cat}
Erstellen von Sammlungen mit der neuen Methode
In Java 9 wurden die folgenden Methoden zu den Schnittstellen List, Set und Map zusammen mit ihren Überladungen hinzugefügt.
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)
Für die Schnittstellen List und Set ist die Methode of(...) mit verschiedenen Methoden für 0 bis 10 Parameter überladen.
Für die Schnittstelle Map ist die Methode of(...) mit verschiedenen Methoden für 0 bis 10 Parameter überladen.
Für die Schnittstelle Map können Sie, wenn mehr als 10 Parameter benötigt werden, die Methode ofEntries(...) verwenden.
Erstellen von Sammlungen mit der neuen Methode
Beispiel
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);
}
}
Die Ausgabe ist:
[A, B, C]
[A, B, C]
{A=Apple, B=Boy, C=Cat}
{A=Apple, B=Boy, C=Cat}
Neue Funktionen in Java 9
Andere Erweiterungen