, Stream, Collectors.groupingby .., Java 8 lambdas:
Map<List<String>, Person> persons = new LinkedHashMap<>();
for (Person p : people) {
persons.compute(Arrays.asList(p.getName(), p.getLastName()),
(s, p2) -> p2 == null ? p : new Person(p.getName(), p.getLastName(), p.getAmount() + p2.getAmount()));
}
- Map, "" .
{[Sam, Fred]=Person(name=Sam, lastName=Fred, amount=25),
[Jack, Eddie]=Person(name=Jack, lastName=Eddie, amount=10)}