Witam serdecznie to mój pierwszy post także proszę o wyrozumiałość.
Zacznę od razu na temat.
Mam problem ze zrozumieniem strumieni w Java. Opowiem na przykładzie:
Mam mapę w której znaduje się klient oraz lista produktów zakupionych przez niego i chciałbym wyznaczyć klienta, który zapłacił najwięcej za zakupy.
Zrobiłem coś takiego (chodzi jedynie o wskazówki co ja tu robię źle):
public static void largestPrice (Map<Client, List<ProductFactory>> map){
Client c = map.entrySet()
.stream() // tutaj rozumiem, że znajduję sie w mapie
.sorted(p -> p.getValue()
.stream() // a tutaj w secie produktów
.reduce((p1,p2) -> p1.getPrice().add(p2.getPrice()))) //jest dostęp do ceny, ale jest komunikat "Bad return type in lamba expression: BigDecimal cannot be convertet to Product.
.findFirst()
.orElseThrow(new NullPointerException("..."))
.getKey();
}
Dzięki za wskazówki.