45

コードのある時点で、Set<Map.Entry<K, V>>マップから を作成しました。今度は同じマップ フォームを再作成したいので、HashSet<Map.Entry<K, V>>背面をに変換しHashMap<K, V>ます。Java にはこれを行うためのネイティブ呼び出しがありますか、それともセット要素をループしてマップを手動で構築する必要がありますか?

4

7 に答える 7

70

以下を含むより単純な Java-8 ソリューションCollectors.toMap:

Map<Integer, String> mapFromSet = set.stream()
    .collect(Collectors.toMap(Entry::getKey, Entry::getValue));

IllegalStateException重複するキーが検出された場合は、 がスローされます。

于 2015-08-30T10:18:04.880 に答える