Wpis z mikrobloga

#java #programowanie

Mirki,
Mam Stream obiektów klasy Person. Chcę te obiekty zagregować w ten sposób, by sumować dane pola obiektów mających takie samo imię i nazwisko.

Przykładowo odiekt1: Person("Adam","kowalski",100,10) i obiekt2: Person("Adam","kowalski", 50,10).
powinny zostać umieszczone w tablicy jako jeden obiekt Person("Adam","kowalski", 150,20). - inty zostają sumowane.

Nasuwa się od razu pomysł, żeby wrzucać wszystko do ArrayListy, zrobić metodę która sprawdza wszystkie obiekty w tej liście i jak znajdzie obiekt o tym samym imieniu i nazwisku - zsumuje inty.. Jest jakieś bardziej optymalne rozwiązanie?
  • 4
@mariusz-laszczka: pytanie: chcesz mieć to zrobione byle działało, czy chcesz mieć to zrobione dobrze? Bo jeśli drugi wariant, to ja bym przemyślał sam design klas, bo wygląda na to, że jest kompletnie skopany.

Person sugeruje, że jest to obiekt reprezentujący konkretną, unikalną osobę. Twój problem jednak sugeruje, że może być kilka obiektów Person odzwierciedlających tę samą osobę.
pletn


@fegwegw: Dzieki, Person to tylko przykład. Chodzi o to, że pobieram z bazy wiele rekordów i część tak właśnie wygląda (ma te same pola + różne inty, które chce sumować). Nie mogę tego robić za pomocą komendy SUM w bazie, bo mi tego nie udostępnia. Muszę pobrać te wszystkie rekordy i zagregować je u siebie w kodzie