birdie:
Estoy tratando de imprimir básica hashmap
con twoin java.
Map<Integer, String> mp = new HashMap<Integer, String>();
mp.put(10, "apple");
mp.put(20, "orange");
mp.put(30, "banana");
Pero no puedo encontrar la manera de imprimir múltiples parámetros, cuando se trata method reference
de java8.
He intentado algo como esto. Pero me da errores de compilación.
mp.forEach(System.out::println(i+" "+s););
Por favor, ayúdame a entender esto. Gracias.
Oleksandr Pyrohov:
Se puede escribir un método separado, por ejemplo:
public static <K, V> void printEntry(Map.Entry<K, V> e) {
System.out.println(e.getKey() + " " + e.getValue());
}
map.entrySet().forEach(Demo::printEntry);
O, si el Map.Entry<K, V>.toString()
ajuste a sus necesidades:
map.entrySet().forEach(System.out::println);
// 20=orange
// 10=apple
// 30=banana
Editar: También, siguiendo el consejo de Holger @, se puede omitir de forma segura los parámetros de tipo, siempre y cuando el código dentro del método no depende de ellos:
public static void printEntry(Object k, Object v) {
System.out.println(k + " " + v);
}
map.forEach(Demo::printEntry);