Ich habe einige Probleme, einen guten Ansatz/Implementierung der Suche nach der Stream-API für die folgende Verwendung:Java 8 Streaming: Gruppierung mit Aggregation
ich eine Liste von Elementen, wobei jedes Element, bestehend aus einem String und einer ganzen Zahl. Jetzt möchte ich die Elemente nach ihren String-Werten gruppieren, und dann möchte ich für jede Gruppe die Summe der Integer-Werte von den Elementen haben, die sich auf diese Gruppe beziehen.
Beispiel: Ich habe folgende 3 Elemente:
("GroupA", 100) ("GroupA", 50) ("GroupB", 10)
Und als Ergebnis Ich mag, eine Karte erhalten, bestehend aus den folgenden zwei (Schlüssel, Wert) -Paare:
("GroupA, 150) ("GroupB, 10)
I bin mir nicht sicher, wie ich das lösen soll. Die vielversprechendste ich mit so weit kam, ist dies:
elements.stream().collect(Collectors.groupingBy(e-> e.getGroup()))
.merge(group, elementsOfTheGroup, (...));
Aber ich bin nicht sicher, was als letzter Parameter der Merge-Methode zum Einfügen funktionieren. Aber ich weiß nicht, ob ich überhaupt die Merge-Methode verwenden soll.
Was wäre die eleganteste Implementierung dafür?
groß, danke! – user3237736