Lambda Ausdrucksweise Java 8
In Java 1.8 (Java 8) ist dies viel einfacher geworden, indem man forEach Methode von Aggregate operations( Stream-Operationen ), die ähnlich aussehen wie die Iteratoren von Iterierbar Schnittstelle.
Kopieren Sie einfach die folgende Anweisung in Ihren Code und benennen Sie die HashMap variabel von hm an Ihre HashMap-Variable, um ein Schlüssel-Wert-Paar auszugeben.
HashMap<Integer,Integer> hm = new HashMap<Integer, Integer>();
/*
* Logic to put the Key,Value pair in your HashMap hm
*/
// Print the key value pair in one line.
hm.forEach((k, v) -> System.out.println("key: " + k + " value:" + v));
// Just copy and paste above line to your code.
Im Folgenden finden Sie den Beispielcode, den ich verwendet habe Lambda-Ausdruck . Dieses Zeug ist so cool. Muss man probieren.
HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>();
Random rand = new Random(47);
int i = 0;
while(i < 5) {
i++;
int key = rand.nextInt(20);
int value = rand.nextInt(50);
System.out.println("Inserting key: " + key + " Value: " + value);
Integer imap = hm.put(key, value);
if( imap == null) {
System.out.println("Inserted");
} else {
System.out.println("Replaced with " + imap);
}
}
hm.forEach((k, v) -> System.out.println("key: " + k + " value:" + v));
Output:
Inserting key: 18 Value: 5
Inserted
Inserting key: 13 Value: 11
Inserted
Inserting key: 1 Value: 29
Inserted
Inserting key: 8 Value: 0
Inserted
Inserting key: 2 Value: 7
Inserted
key: 1 value:29
key: 18 value:5
key: 2 value:7
key: 8 value:0
key: 13 value:11
Man kann auch verwenden Spliterator für dasselbe.
Spliterator sit = hm.entrySet().spliterator();
UPDATE
Einschließlich Dokumentationslinks zu Oracle Docs. Für mehr über Lambda Hier geht's weiter enlace und muss lesen Aggregierte Operationen und für Spliterator gehen Sie zu diesem enlace .
46 Stimmen
In Java 8 mit Lambda-Ausdruck: stackoverflow.com/a/25616206/1503859
5 Stimmen
Java 8: stackoverflow.com/questions/46898/