Javaで配列をセットに変換する方法 質問する

Javaで配列をセットに変換する方法 質問する

Java で配列を Set に変換したいと思います。これを行うにはいくつかの明白な方法 (ループを使用するなど) がありますが、次のようなもう少しすっきりした方法が欲しいです。

java.util.Arrays.asList(Object[] a);

何か案は?

ベストアンサー1

このような:

Set<T> mySet = new HashSet<>(Arrays.asList(someArray));

Java 9 以降では、変更不可能なセットが OK の場合:

Set<T> mySet = Set.of(someArray);

Java 10 以降では、ジェネリック型パラメータは配列コンポーネント型から推論できます。

var mySet = Set.of(someArray);

気をつけて

Set.of は、someArray に重複する要素がある場合に IllegalArgumentException をスローします。詳細については、以下を参照してください。https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html#of(E...)

変更不可能なセットが必要で、配列内に重複した要素がある可能性がある場合は、次の手順を実行します。

var mySet = Set.copyOf(Arrays.asList(array));

おすすめ記事