10

Java の HashMap<> に関するもう 1 つの質問:

私は次のものを持っています

Map<String, Set<Integer>> myWordDict = new HashMap<String, Set<Integer>>();

変数にデータを格納した後myWordDict、HashMapValues を反復処理し、各値を新しい Set 変数に追加しますか?

しようとするSet<Integer> newVariable = myWordDict.entrySet()と、データ型に互換性がないようです。

したがって、私の質問は本質的に次のとおりです。

HashMap 値または entrySet() を Set に変換する方法は?

ありがとう

4

9 に答える 9

11

あなたの宣言は以下のようになります。マップの値をに変換しますCollection

  Collection<Set<Integer>> newVariable = myWordDict.values();
于 2013-11-12T06:18:34.907 に答える
5

何をentrySet返しますか?

public Set<Map.Entry<K,V>> entrySet()

このマップに含まれるマッピングの Set ビューを返します。セットはマップに支えられているため、マップへの変更はセットに反映され、その逆も同様です。

myWordDictハッシュマップを 反復したい場合は、

for(Map.Entry<String, Set<Integer>> entry : myWordDict.entrySet())
{
   Set<Integer> newVariable = entry.getValue();
}

関連リンク

于 2013-11-12T06:21:49.590 に答える
3

すべての値が of ではなく of として必要な場合SetIntegersSet次のSetようにすることができます

Set<Integer> newVariable = new HashSet<Integer>();
for (Set<Integer> set : myWordDict.values()) {
    newVariable.addAll(set);
}

または、それらをSetofSetにしたい場合は、このようなことをする必要があります

Set<Set<Integer>> newVariable = new HashSet<Set<Integer>>();
newVariable.addAll(myWordDict.values());
于 2013-11-12T06:21:37.673 に答える
1

マップ内のセットからすべての値を追加すると仮定すると、それを行うためのアプローチはaddAllメソッド を使用することです。

Set<Integer> newVariable = new HashSet<Integer>();
for (Set<Integer> set : myWordDict.values()) {
    newVariable.addAll(set);
}
于 2013-11-12T06:24:02.413 に答える
1

使用myWordDict.values()しないでmyWordDict.entrySet()ください。valuesvaluesはマップの のセットですが、entrySetはそのマッピングのセットです (これは java.util.map.Entry オブジェクトのセットで、それぞれがキーと値を記述します)。

于 2013-11-12T06:17:34.207 に答える
1
Map<Integer,String>   map1 = new HashMap<Integer,String>();

map1.put(1, "Rakesh");
map1.put(2, "Amal");
map1.put(3, "Nithish");

Set<Entry<Integer,String>> set1 = map1.entrySet();
于 2013-11-12T06:21:39.720 に答える
0

そこで、値 Set を反復処理するイテレータを考え出しました

私はこのデータ構造を持っています

Map<String, Set<Integer>> myWordDict = new HashMap<String, Set<Integer>>();

私が作成しました

Iterator mapIterator = myWordDict.entrySet().iterator();

次に、while() ループを使用して、個々の値を新しい Set 変数に追加します。これが最も効率的な方法かどうかはわかりませんが、私のニーズには合っています。

于 2013-11-12T06:25:55.220 に答える