Zliczanie wystąpień HashMap

Zliczanie wystąpień HashMap
CO
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 13 lat
  • Postów:4
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

http://4programmers.net/Forum/Java/177708-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 ?

edytowany 2x, ostatnio: codemonkey
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

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


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
CO
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 13 lat
  • Postów:4
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.

Freakman
  • Rejestracja:ponad 18 lat
  • Ostatnio:ponad 7 lat
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.


play hard..go pro.
1

Nie jestem pewien czy dobrze zrozumiałem problem.

Kopiuj
  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.