マルチマップを作成する方法 地図から >? 質問する

マルチマップを作成する方法 地図から >? 質問する

このようなマルチマップ構造は見つかりませんでした...これを実行したい場合は、マップを反復処理して、マルチマップを設定します。他の方法はありますか?

final Map<String, Collection<String>> map = ImmutableMap.<String, Collection<String>>of(
            "1", Arrays.asList("a", "b", "c", "c"));
System.out.println(Multimaps.forMap(map));

final Multimap<String, String> expected = ArrayListMultimap.create();
for (Map.Entry<String, Collection<String>> entry : map.entrySet()) {
    expected.putAll(entry.getKey(), entry.getValue());
}
System.out.println(expected);

最初の結果は、{1=[[a, b, c, c]]}しかし私は期待している{1=[a, b, c, c]}

ベストアンサー1

あなたが持っていると仮定すると

Map<String, Collection<String>> map = ...;
Multimap<String, String> multimap = ArrayListMultimap.create();

それがあなたにとって最善の策だと私は信じています

for (String key : map.keySet()) {
  multimap.putAll(key, map.get(key));
}

またはより最適だが読みにくい

for (Entry<String, Collection<String>> entry : map.entrySet()) {
  multimap.putAll(entry.getKey(), entry.getValue());
}

おすすめ記事