Znajdowanie liczby obiektów o określonym typie

0

Cześć, przerabiam sobie trochę dziedziczenie i wpadłem na przykład, do którego nie wiem jak się poprawnie zabrać.
Załóżmy, że mamy klasę obraz, której obiekty zawierają figury różnego typu: koła, kwadraty, trójkąty itd. Wszystkie te figury są w prostym kontenerze typu ArrayList<Figura>.
Chciałbym móc dla każdego obrazu podać liczbę figur określonego typu.

Miałem 3 pomysły:
pierwszy-zmienna statyczna licznik w klasie bazowej figura: to jest ok, ale tylko dla jednego obrazu, dla większej ilości byłoby nielogiczne, to raczej obrazy powinny dawać możliwość sprawdzenia, ile i jakich mają obiektów.
drugi-tablica w klasie obraz-dodając figurę do obrazu aktualizujemy tablicę wystąpień figur w obrazie: ok, ale dla dużej ilości klas niepotrzebny narzut pamięciowy
trzeci-metoda w klasie obraz szukająca operatorem instanceof obiektów danego typu-niby najbardziej mi pasuje, ale z polimorfizmem to ma chyba niewiele wspólnego

Bardzo proszę o pomysły/wskazówki jak to sensownie rozwiązać.

0
int count=0;
for(figura f:array) if(f instanceof kwadrat) ++count;
0

Aha, czyli jednak trzecia opcja. Chyba chciałem trochę przekombinować, dzięki wielkie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1