このような宣言でネストされたマップをどのように反復すべきですか?ネストされたマップとマルチセットをどのように反復処理するのですか? - Java/Guava
Map<String, Multiset<String>>
このハッシュ人口タスクを行うための、より効果的な方法です他のハッシュマップ/リストがある場合にお勧めしてください?
import com.google.common.collect.Multiset;
import com.google.common.collect.TreeMultiset;
String[] foobarness = {"foo" , "bar", "ness", "foo",
"bar", "foo", "ness", "bar", "foo", "ness", "foo",
"bar", "foo", "ness", "bar", "ness", "foo", "bar",
"foo", "ness"};
String[] types = {"type::1", "type::2", "type::3",
"type::4",};
Map<String, Multiset<String>> typeTextCount =
new HashMap<String, Multiset<String>>();
Multiset<String> textAndCount
= TreeMultiset.create();
for (int i=0; i<types.length; i++) {
// I know it's kinda weird but in my task,
// i want to keep adding only 1 to the count for each entry.
// Please suggest if there is a better hashmap/list for such task.
if ((types[i]== "type::1") or (types[i]== "type::3")) {
for (String text : foobarness) {
// I don't worry too much about how i
// populate the Map, it is iterating through
// the Map that I have problem with.
textAndCount.put(text, 1);
}
}
if ((types[i]== "type::2") or (types[i]== "type::4")) {
for (String text : foobarness)
textAndCount.put(text, 1);
}
}
ここでハッシュマップにデータが設定されていますが、どのように複雑なネストマップを反復処理しますか? は、私は以下のコードを試してみたが、私は私の多重集合からの第一のgetValue()を得た:あなたのコードで
Iterator<Entry<String, Multiset<String>>> itTTC =
typeTextCount.entrySet().iterator();
while (itTTC.hasNext()) {
Map.Entry textCt = (Map.Entry)itTTC.next();
System.out.println(textCt.getKey() + " :\t" + textCt.getValue());
itTTC.remove();
}
ここで、要素をマップに配置しますか? – soulcheck
ところで、デバッガを試してみましたか? – Scorpion