1. 概要

この短い記事では、プレーンJavaを使用してマップの値を配列、リスト、またはセット変換する方法と、Guavaベースの簡単な例を示します。

この記事は、ここBaeldungの「Java –BacktoBasic」シリーズの一部です。

2. 値を配列にマップ

まず、プレーンなjavaを使用してマップの値を配列に変換する方法を見てみましょう。

@Test
public void givenUsingCoreJava_whenMapValuesConvertedToArray_thenCorrect() {
    Map<Integer, String> sourceMap = createMap();

    Collection<String> values = sourceMap.values();
    String[] targetArray = values.toArray(new String[0]);
}

toArray(new T [0])は、 toArray(new T [size])よりもこのメソッドを使用するための推奨される方法であることに注意してください。 AlekseyShipilëvが彼のブログ投稿で証明しているように、それはより速く、より安全で、よりクリーンに見えます。

3. 値をリストにマップ

次に、プレーンJavaを使用して、マップの値をリストに変換しましょう。

@Test
public void givenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect() {
    Map<Integer, String> sourceMap = createMap();

    List<String> targetList = new ArrayList<>(sourceMap.values());
}

そしてGuavaを使用する:

@Test
public void givenUsingGuava_whenMapValuesConvertedToList_thenCorrect() {
    Map<Integer, String> sourceMap = createMap();

    List<String> targetList = Lists.newArrayList(sourceMap.values());
}

4. 設定する値をマップする

最後に、プレーンjavaを使用して、マップの値をセットに変換しましょう。

@Test
public void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() {
    Map<Integer, String> sourceMap = createMap();

    Set<String> targetSet = new HashSet<>(sourceMap.values());
}

5. 結論

ご覧のとおり、すべての変換は、Java標準コレクションライブラリのみを使用して、1行で実行できます。

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