java8のメソッドのリファレンスを使用して複数のパラメータを印刷する方法

バーディー:

私は基本的なプリントアウトしようとしているhashmapとのtwoin javaの。

Map<Integer, String> mp = new HashMap<Integer, String>();
mp.put(10, "apple");
mp.put(20, "orange");
mp.put(30, "banana");

しかし、私はそれがに来るとき、複数のパラメータを印刷する方法を見つけ出すことはできませんmethod referencejava8に。

私はこのような何かを試してみました。しかし、それは私にコンパイルエラーを与えています。

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);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=164521&siteId=1