Zliczanie wystąpień HashMap

0

Otóż mam zbiór danych (coś jak w bazie danych) i potrzebuje napisać licznik który zliczy mi wystąpienia w tej tablicy wybranych kompleksów danych np. ile jest w tablicy obiektów o wartości a na atrybucie 1 i wartości c na atrybucie 7. Zrzucałbym wartości tych atrybutów do osobnego obiektu i chciałbym je zliczać.
Wykombinowałem że mógłbym to zrobić na HashMap. Znalazłem nawet podobny problem do którego zamieszczam link

Problem z HashMap
.
Chciałbym po prostu zliczać ile takich obiektów próbowano dodać do Mapy.
Wie ktoś jak przerobić przykład z tego tematu ?

0

A pytanie gdzie? Bo napisałeś jaki masz problem i jak mozna go rozwiązać. Więc w czym problem?

0

No w temacie który podałem jest sprawdzanie wystąpienia takiego obiektu w mapie a ja potrzebuje żeby przy dodaniu kolejnego identycznego obiektu zmieniał się wartość licznika przy takim obiekcie. Piszę bo nie ogarniam złożonych struktur danych. Nie wiem może czegoś po prostu nie rozumiem.

1

No to mapa gdzie kluczem jest Twoj obiekt a wartoscia licznik, przy dodawaniu sprawdzasz czy mapa ma dany klucz (containsKey), jeśli tak to inkrementujesz wartośc dla tego klucza, jak nie to dodajesz pozycję z 1 na wartości.

Klasa której instancje będziesz miał na kluczu musi implementować hashCode i equals, żeby mapa mogła sobie porównać czy taki obiekt na kluczu już istnieje - ale o tym poczytasz w google.

1

Nie jestem pewien czy dobrze zrozumiałem problem.

  HashMap<Klasa_z_której_jest_atrybut,Integer> liczniki=new HashMap<Klasa_z_któtrj_jest_atrybut,Integer>();
  ...
  Integer indeks=liczniki.get(atrybut);
  if(indeks==null)
  {
      liczniki.put(atrybut,1);
  }
  else
  {
      liczniki.put(atrybut,indeks+1)
  }

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.