Biorąc pod uwagę kolekcję pary {Price, Quantity}
, muszę zebrać wszystkie ilości w tym samym przedziale cenowym. Jaki jest najłatwiejszy sposób, aby to osiągnąć?Pływak jako klucz na mapie
Drobno krojone, byłoby wdrożenie rozwiązania przy użyciu Hashmap
z kluczami będącymi ceną i wartością będącymi sumą zagregowaną. Ale według mojej wiedzy, Float
nie jest bezpiecznym kluczem dla Hashmap
. To rozwiązanie jest podatne na błędy.
Co jest zalecanym rozwiązaniem alternatywnym, aby rozwiązać ten problem?
Użyj więc ciągu jako klucza. Jaki jest problem? –
Zdefiniuj "punkt ceny?" Czy cena jest w pewnym zakresie? Możesz utworzyć nową klasę, taką, która zawiera wartość ceny (ja sam użyłbym w tym celu BigDecimal), a to przekłada cenę na zakres, przy czym zakres jest używany do określenia parametru hashCode. –
Doskonały. Dzięki!! Byłem zbyt pochłonięty problemem, aby myśleć o tym prostym rozwiązaniu. Dzięki @AleksandrM –