I poner un elementos de la matriz de cadena es un mapa donde los elementos de matriz de cadena es la clave y la frecuencia de palabra es el valor, por ejemplo:colecciones Java - conjunto de claves() vs entrySet() en el mapa
String[] args = {"if","it","is","to","be","it","is","up","me","to","delegate"};
entonces el mapa tendrá entradas como [ if:1, it:2 .... ]
Set<String> keys = m.keySet();
System.out.println("keyset of the map : "+keys);
impresiones de todas las teclas: "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());
}
grabados todos los valores de pares de claves:
utilizando el conjunto de impresiones de entrada de todos los valores:
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
pero el bloque de código a continuación deben imprimir exactamente el mismo resultado que el anterior, pero no es así:
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()));
}
imprime:
Key: if ,value: 2
Key: is ,value: 2
Key: be ,value: 1
Key: me ,value: 1
Pero si la línea uncomment 1 en el bucle mientras es decir
System.out.println(itr1.next()+" ");
y comentar la línea
System.out.println("Key: "+itr2.next()+" ,value: "+m.get(itr2.next()));
A continuación, obtener todas las claves: {"if","it","is","to","be","it","is","up","me","to","delegate"};
Si utilizamos m.get()
con itr2.next()
, entonces el iterador no tiene pocas teclas!
Si está almacenando muchos valores enteros, debe buscar en la biblioteca fastutil en lugar de colecciones j.u. – bmargulies
El conjunto de claves no tendrá repeticiones, supongo que no debería tener la cadena "ello" impresa dos veces. Que está imprimiendo después de esta llamada Establecer keys = m.keySet(); System.out.println ("conjunto de claves del mapa:" + teclas); –