バーディー:
私は基本的なプリントアウトしようとしているhashmap
とのtwoin javaの。
Map<Integer, String> mp = new HashMap<Integer, String>();
mp.put(10, "apple");
mp.put(20, "orange");
mp.put(30, "banana");
しかし、私はそれがに来るとき、複数のパラメータを印刷する方法を見つけ出すことはできませんmethod reference
java8に。
私はこのような何かを試してみました。しかし、それは私にコンパイルエラーを与えています。
mp.forEach(System.out::println(i+" "+s););
これを理解するために私を助けてください。ありがとうございました。
オレクサンドルPyrohov:
あなたは、例えば、別の方法を記述することができます。
public static <K, V> void printEntry(Map.Entry<K, V> e) {
System.out.println(e.getKey() + " " + e.getValue());
}
map.entrySet().forEach(Demo::printEntry);
または、もしMap.Entry<K, V>.toString()
あなたの要件を満たしています。
map.entrySet().forEach(System.out::println);
// 20=orange
// 10=apple
// 30=banana
編集:また、ホルガーのアドバイス@以下、あなたは安全に長いメソッド内のコードは、それらに依存しないようようなタイプのパラメータを省略することができます。
public static void printEntry(Object k, Object v) {
System.out.println(k + " " + v);
}
map.forEach(Demo::printEntry);