文字列配列要素は、文字列配列の要素がキーであり、単語の頻度が値であるマップです。例:
String[] args = {"if","it","is","to","be","it","is","up","me","to","delegate"};
次に、マップには次のようなエントリがあります[ if:1, it:2 .... ]
Set<String> keys = m.keySet();
System.out.println("keyset of the map : "+keys);
すべてのキーを出力します。"if","it","is","to","be","it","is","up","me","to","delegate"
Set<Map.Entry<String, Integer>> entrySet = m.entrySet();
Iterator<Map.Entry<String, Integer>> i = entrySet.iterator();
while(i.hasNext()){
Map.Entry<String, Integer> element = i.next();
System.out.println("Key: "+element.getKey()+" ,value: "+element.getValue());
}
すべてのキー値のペアを出力します:
エントリセットを使用すると、すべての値が出力されます。
Key: if ,value: 1
Key: it ,value: 2
Key: is ,value: 2
Key: to ,value: 2
Key: be ,value: 1
Key: up ,value: 1
Key: me ,value: 1
Key: delegate ,value: 1
ただし、以下のコードブロックは、上記とまったく同じ出力を出力する必要がありますが、そうではありません。
Iterator<String> itr2 = keys.iterator();
while(itr2.hasNext()){
//System.out.println(itr1.next()+" ");
//System.out.println(m.get(itr1.next())+" ");
System.out.println("Key: "+itr2.next()+" ,value: "+m.get(itr2.next()));
}
それは印刷します:
Key: if ,value: 2
Key: is ,value: 2
Key: be ,value: 1
Key: me ,value: 1
しかし、whileループの1行目のコメントを外すと
System.out.println(itr1.next()+" ");
行にコメントします
System.out.println("Key: "+itr2.next()+" ,value: "+m.get(itr2.next()));
次に、すべてのキーを取得します。{"if","it","is","to","be","it","is","up","me","to","delegate"};
m.get()
と一緒に使用する場合itr2.next()
、イテレータにはいくつかのキーがありません。