Zliczanie wystąpień HashMap

Odpowiedz Nowy wątek
2011-08-03 08:57
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 ?

edytowany 2x, ostatnio: codemonkey, 2011-08-03 09:01

Pozostało 580 znaków

2011-08-03 09:01
0

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

Pozostało 580 znaków

2011-08-03 09:12
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.

Pozostało 580 znaków

2011-08-03 09:21
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.

Pozostało 580 znaków

2011-08-03 09:26
bo

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)
  }

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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