in Java 8 Ich weiß, dass sie den parallelen Strom hinzugefügt, die Vorteile von Multicore-Prozessoren nimmt, und ich weiß, dass Sie es mit etwas wie folgt verwenden:Java 8 | Parallel-Stream für eine HashMap
List<String> list = new ArrayList<String>();
list.parallelStream().forEach(str -> System.out.println(str));
Aber wie würde ich erreichen so etwas mit einer HashMap?
Map<String, Integer> map = new HashMap<String, Integer>();
// won't work, because the Map class doesn't have the .parallelStream()
map.parallelStream().forEach((str, num) -> System.out.println(str + ":" + num));
Weiß jemand, wie man so etwas macht? Danke
ja, aber würde nicht die '.getValue()' Abnahme der Preformance aufrufen? –
Verglichen mit was? Ein Teil des Codes muss den Wert (und den Schlüssel) aus dem Eintrag extrahieren. – rgettman
@John S .: Vielleicht verwechseln Sie 'Map.Entry.getValue' mit' Map.get'. Der Aufruf von "getValue" ist hier nicht identisch mit einer 'Map'-Suche. Während es abhängig von der Kartenimplementierung ist, stellt ein Eintrag normalerweise eine Art von aufgelöstem Mapping mit billigen Methoden 'getKey' und 'getValue' dar, dh im Falle von 'java.util.HashMap' sprechen wir davon, ein Feld aus dem Eintrag zu lesen Instanz, nicht über eine Hash-Suche. – Holger