Cześć, potrzebuje wyciągnąć informacja z pewnej ArrayListy.
Mam listę produktów List<Product> products. Może zawierać wiele wystąpień tych samych produktów. Chcę poprzez strumień stworzyć mapę Map<Product, Integer> która przedstawiać ma ile razy każdy z produktów występuje w liście. Nakierujecie co pokolei ??
- Rejestracja:około 6 lat
- Ostatnio:ponad 4 lata
- Postów:30
0
edytowany 1x, ostatnio: manifestor
- Rejestracja:ponad 7 lat
- Ostatnio:4 dni
- Postów:455
3
Masz gotowe funkcje groupBy, która wszystko załatwia bez wysiłku.
Użyj na streamie collect() i w tej metodzie podaj Collectors.groupBy()

- Rejestracja:prawie 5 lat
- Ostatnio:ponad 4 lata
- Lokalizacja:świat
- Postów:174
1
Dwa collecotry beda potrzebna, groupBy i counting
- Rejestracja:około 6 lat
- Ostatnio:ponad 4 lata
- Postów:30
0
Dzięki za przypomnienie :) I znów utknąłem. Z Mapy Map<Product, Integer> czyli produkt gdzie jest cena i Integer zawiera ilość. Muszę wyliczyć łączny koszt zakupów.

- Rejestracja:ponad 21 lat
- Ostatnio:około 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
1
No i gdzie problem? o_O mapujesz entry z tej mapy do cena*ilość
a potem robisz collector summing
- Rejestracja:ponad 7 lat
- Ostatnio:4 dni
- Postów:455
2
@manifestor: radziłbym na spokojnie przysiąść i pouczyc się tego stream Api, bo to są podstawy. No offence oczywiście.
edytowany 1x, ostatnio: NeutrinoSpinZero
Prawda
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
.collect(Collectors.summarizingDouble(x -> x.getKey().getPrice().multiply (new BigDecimal(x.getValue())).doubleValue()));