Cómo imprimir múltiples parámetros usando el método de referencia en java8

birdie:

Estoy tratando de imprimir básica hashmapcon 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 referencede 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);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=164588&siteId=1
Recomendado
Clasificación