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 ??
Java strumienie
- Rejestracja: dni
- Ostatnio: dni
- Postów: 30
0
- Rejestracja: dni
- Ostatnio: dni
- Postów: 457
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: dni
- Ostatnio: dni
- Lokalizacja: świat
- Postów: 174
1
Dwa collecotry beda potrzebna, groupBy i counting
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Kraków
- Postów: 255
1
Możesz też użyć Collectors.toMap() z merge function
- Rejestracja: dni
- Ostatnio: dni
- 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: dni
- Ostatnio: dni
- 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: dni
- Ostatnio: dni
- Postów: 457
2
@manifestor: radziłbym na spokojnie przysiąść i pouczyc się tego stream Api, bo to są podstawy. No offence oczywiście.