工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java 9コレクションファクトリメソッド:不変List、Set、Mapを簡潔に作成

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<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);
    }
}

出力

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

新しいメソッド

Java 9で以下のメソッドがList、Set、Mapインターフェースに追加されました(オーバーロード含む)。

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)

注意点

新しいコレクション作成方法

import java.util.*;

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);
    }
}

出力

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

Java

  1. Java演算子をマスター:種類、構文、実践例
  2. Java抽象クラスとメソッド:包括的ガイド
  3. Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
  4. Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
  5. Javaアノテーション完全ガイド:種類、配置場所、実践例
  6. Javaオートボクシングとアンボクシング完全ガイド:実例とベストプラクティス
  7. Java String toLowerCase() & toUpperCase():ロケール対応テキストケース変換
  8. Javaコレクションフレームワーク完全ガイド: インターフェース・実装クラス・アルゴリズム・イテレータ・Comparator
  9. Java 10の新API 70以上を解説:不変コレクション、Optional改善など
  10. Java 10のガベージコレクターインターフェースとG1並列フルGCでメモリ管理を効率化
  11. Java 9コレクションファクトリメソッド:不変List、Set、Mapを簡潔に作成