Szukaj…


Wprowadzenie

Pojawienie się Java 9 wprowadza wiele nowych funkcji do API API Javy, z których jedną są fabryczne metody kolekcji. Metody te pozwalają na łatwą inicjalizację niezmiennych kolekcji, niezależnie od tego, czy są one puste, czy niepuste.

Należy pamiętać, że te metody fabryczne są dostępne tylko dla następujących interfejsów: List<E> , Set<E> i Map<K, V>

Składnia

  • static <E> List<E> of​()
  • static <E> List<E> of​(E e1)
  • static <E> List<E> of​(E e1, E e2)
  • static <E> List<E> of​(E e1, E e2, ..., E e9, E e10)
  • static <E> List<E> of​(E... elements)
  • static <E> Set<E> of​()
  • static <E> Set<E> of​(E e1)
  • static <E> Set<E> of​(E e1, E e2)
  • static <E> Set<E> of​(E e1, E e2, ..., E e9, E e10)
  • static <E> Set<E> of​(E... elements)
  • static <K,V> Map<K,V> of()
  • static <K,V> Map<K,V> of(K k1, V v1)
  • static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2)
  • static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, ..., K k9, V v9, K k10, V v10)
  • static <K,V> Map<K,V> ofEntries​(Map.Entry<? extends K,? extends V>... entries)

Parametry

Metoda z parametrem Opis
List.of(E e) Typ ogólny, którym może być klasa lub interfejs.
Set.of(E e) Typ ogólny, którym może być klasa lub interfejs.
Map.of(K k, V v) Para klucz-wartość ogólnych typów, z których każdy może być klasą lub interfejsem.
Map.of(Map.Entry<? extends K, ? extends V> entry) Instancja Map.Entry której kluczem może być K lub jedno z jej dzieci, a jej wartością może być V lub dowolne z jej dzieci.

Lista Przykłady metod fabrycznych

  • List<Integer> immutableEmptyList = List.of();
    • Inicjuje pustą, niezmienną List<Integer> .
  • List<Integer> immutableList = List.of(1, 2, 3, 4, 5);
    • Inicjuje niezmienną List<Integer> pięcioma elementami początkowymi.
  • List<Integer> mutableList = new ArrayList<>(immutableList);
    • Inicjuje zmienną List<Integer> z niezmiennej List<Integer> .

Zestaw Przykłady metod fabrycznych

  • Set<Integer> immutableEmptySet = Set.of();
    • Inicjuje pusty, niezmienny Set<Integer> .
  • Set<Integer> immutableSet = Set.of(1, 2, 3, 4, 5);
    • Inicjuje niezmienny Set<Integer> pięcioma elementami początkowymi.
  • Set<Integer> mutableSet = new HashSet<>(immutableSet);
    • Inicjuje mutable Set<Integer> z niezmiennego Set<Integer> .

Mapa Przykłady metod fabrycznych

  • Map<Integer, Integer> immutableEmptyMap = Map.of();
    • Inicjuje pustą, niezmienną Map<Integer, Integer> .
  • Map<Integer, Integer> immutableMap = Map.of(1, 2, 3, 4);
    • Inicjuje niezmienną Map<Integer, Integer> dwoma początkowymi wpisami klucz-wartość.
  • Map<Integer, Integer> immutableMap = Map.ofEntries(Map.entry(1, 2), Map.entry(3, 4));
    • Inicjuje niezmienną Map<Integer, Integer> dwoma początkowymi wpisami klucz-wartość.
  • Map<Integer, Integer> mutableMap = new HashMap<>(immutableMap);
    • Inicjuje zmienną Map<Integer, Integer> z niezmiennej Map<Integer, Integer> .


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow