サーチ…


前書き

Java 9の登場により、JavaのCollections APIに多くの新機能がもたらされます。その1つはコレクションファクトリメソッドです。これらのメソッドを使用すると、空でも空でも、 不変のコレクションを簡単に初期化できます。

これらのファクトリメソッドは、 List<E>Set<E> 、およびMap<K, V>の各インタフェースでのみ使用できます。

構文

  • 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)

パラメーター

メソッドw /パラメータ説明
List.of(E e) クラスまたはインタフェースになることができるジェネリック型。
Set.of(E e) クラスまたはインタフェースになることができるジェネリック型。
Map.of(K k, V v) それぞれがクラスまたはインタフェースになることができるジェネリック型のキーと値のペア。
Map.of(Map.Entry<? extends K, ? extends V> entry) そのキーがKかその子のいずれかであり、その値がVかその子であるMap.Entryインスタンス。

リストファクトリメソッドの例

  • List<Integer> immutableEmptyList = List.of();
    • 空の不変なList<Integer>初期化します。
  • List<Integer> immutableList = List.of(1, 2, 3, 4, 5);
    • 不変のList<Integer>を5つの初期要素で初期化します。
  • List<Integer> mutableList = new ArrayList<>(immutableList);
    • 変更可能な初期化List<Integer>不変のList<Integer>

セットファクトリメソッドの例

  • Set<Integer> immutableEmptySet = Set.of();
    • 空の不変Set<Integer>初期化します。
  • Set<Integer> immutableSet = Set.of(1, 2, 3, 4, 5);
    • 5つの初期要素で不変のSet<Integer>を初期化します。
  • Set<Integer> mutableSet = new HashSet<>(immutableSet);
    • Set<Integer>不変のSet<Integer>から変更可能なSet<Integer>初期化します。

地図ファクトリメソッドの例

  • Map<Integer, Integer> immutableEmptyMap = Map.of();
    • 空の不変のMap<Integer, Integer>初期化します。
  • Map<Integer, Integer> immutableMap = Map.of(1, 2, 3, 4);
    • 2つの初期キー値エントリを使用して不変のMap<Integer, Integer>を初期化します。
  • Map<Integer, Integer> immutableMap = Map.ofEntries(Map.entry(1, 2), Map.entry(3, 4));
    • 2つの初期キー値エントリを使用して不変のMap<Integer, Integer>を初期化します。
  • Map<Integer, Integer> mutableMap = new HashMap<>(immutableMap);
    • 不変のMap<Integer, Integer>から変更可能なMap<Integer, Integer>を初期化します。


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow