1概要

この短い記事では、


array



Set


の間の変換 – まず普通のJava、次にGuavaとApacheのCommons Collectionsライブラリ – を見ていきます。

この記事はリンクの一部です:/java-tutorial[The Java – Back to Basic]シリーズ、ここBaeldung。


2

Array



Set


に変換


2.1. 普通のJava

を使う

まず、普通のJavaを使って配列を

Set

に変える方法を見てみましょう。

@Test
public void givenUsingCoreJavaV1__whenArrayConvertedToSet__thenCorrect() {
    Integer[]sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set<Integer> targetSet = new HashSet<Integer>(Arrays.asList(sourceArray));
}

あるいは、

Set

を最初に作成してから、配列要素で満たすこともできます。

@Test
public void givenUsingCoreJavaV2__whenArrayConvertedToSet__thenCorrect() {
    Integer[]sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set<Integer> targetSet = new HashSet<Integer>();
    Collections.addAll(targetSet, sourceArray);
}


2.2. Google Guava

を使用する

次に、配列からSetへのGuavaの変換を見てみましょう。

@Test
public void givenUsingGuava__whenArrayConvertedToSet__thenCorrect() {
    Integer[]sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set<Integer> targetSet = Sets.newHashSet(sourceArray);
}


2.3. Apache Commonsコレクションの使い方

最後に、ApacheのCommons Collectionライブラリを使って変換しましょう。

@Test
public void givenUsingCommonsCollections__whenArrayConvertedToSet__thenCorrect() {
    Integer[]sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set<Integer> targetSet = new HashSet<>(6);
    CollectionUtils.addAll(targetSet, sourceArray);
}


3セットを配列に変換


3.1. 普通のJava

を使う

では逆に見てみましょう –

既存のSetを配列に変換する

:

@Test
public void givenUsingCoreJava__whenSetConvertedToArray__thenCorrect() {
    Set<Integer> sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
    Integer[]targetArray = sourceSet.toArray(new Integer[sourceSet.size()]);
}

** 3.2. グアバの使用

**

次に – グアバの解決策:

@Test
public void givenUsingGuava__whenSetConvertedToArray__thenCorrect() {
    Set<Integer> sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
    int[]targetArray = Ints.toArray(sourceSet);
}

Guavaの

Ints

APIを使用しているので、このソリューションは、使用しているデータ型に固有のものです。


3.3コモンズコレクションの使い方

最後に、Apache Commons Collectionsライブラリを使用して

Set

を配列に変換しましょう。

@Test
public void givenUsingCommonsCollections__whenSetConvertedToArray__thenCorrect() {
    Set<Integer> sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
    Integer[]targetArray = sourceSet.toArray(new Integer[sourceSet.size()]);
}


4結論

これらすべての例とコードスニペットの実装は、https://github.com/eugenp/tutorials/tree/master/java-collections-conversions[Github]** にあります。これはMavenベースのプロジェクトなので、インポートしてそのまま実行するのは簡単なはずです。