Javaでの配列とリスト間の変換

Javaでの配列とリスト間の変換

1. 概要

この簡単な記事では、コアJavaライブラリ、GuavaまたはApache Commonsコレクションを使用してconvert between an Array and a Listする方法を説明します。

この記事は、例としてここのthe “Java – Back to Basic” seriesの一部です。

2. Listを配列に変換する

2.1. プレーンJavaの使用

Listから配列using plain javaへの変換から始めましょう。

@Test
public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() {
    List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5);
    Integer[] targetArray = sourceList.toArray(new Integer[sourceList.size()]);
}

2.2. グアバの使用

同じ変換にthe Guava APIを使用してみましょう。

@Test
public void givenUsingGuava_whenListConvertedToArray_thenCorrect() {
    List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5);
    int[] targetArray = Ints.toArray(sourceList);
}

3. 配列をListに変換します

3.1. プレーンJavaの使用

配列をListに変換するためのプレーンなJavaソリューションから始めましょう。

@Test
public void givenUsingCoreJava_whenArrayConvertedToList_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    List targetList = Arrays.asList(sourceArray);
}

これは固定サイズのリストであり、依然として配列によって支えられていることに注意してください。 標準のArrayListが必要な場合は、次のようにインスタンス化できます。

List targetList = new ArrayList(Arrays.asList(sourceArray));

3.2. グアバの使用

同じ変換にthe Guava APIを使用してみましょう。

@Test
public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    List targetList = Lists.newArrayList(sourceArray);
}

3.3. CommonsCollectionsの使用

最後に、Apache Commons CollectionsCollectionUtils.addAll APIを使用して、配列の要素を空のリストに入力します。

@Test
public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    List targetList = new ArrayList<>(6);
    CollectionUtils.addAll(targetList, sourceArray);
}

4. 結論

これらすべての例とコードスニペットcan be found over on GitHubの実装–これはMavenベースのプロジェクトであるため、そのままインポートして実行するのは簡単です。