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));
Hier ist ein Beispiel, bei dem ein Lambda-Ausdruck verwendet wird:
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 Link und muss lesen Aggregierte Operationen und für Spliterator gehen Sie zu diesem Link .
3 Stimmen
In Java 8 mit Lambda : stackoverflow.com/a/25616206/1503859
0 Stimmen
Java 8 mit Streams : stackoverflow.com/a/32343195/1216775 Ein Vorteil von Streams ist, dass sie auch parallelisiert werden können.