# GrundlagenBeispiel zu HashSet und HashMap



## Kremsn (23. Nov 2009)

Hallo,

wäre dankbar für Hilfe bei meiner Aufgabe zu Sets, Maps, die ich angehängt habe. 

1. Bei Aufgabe2 bekomm ich bei HashMap doppelte NamensEinträge, das sollte bei einer Map ja nicht sein. Wie initialisiere ich das denn richtig?

2. Bei Aufgabe3 hatte ich gedacht, nehme ich eine Schleife und zwei Sets und sage, wenn die Person schon in Set1 vorkommt , packe sie in Set2, was aber nicht hingehauen hat. Ich soll da auch irgenwie die Methoden equals() und hashcode() aus der Person-Klasse mit einbauen und verändern. Ich versteh aber nich wie ich die in diesem Zusammenhang einsetze. 
Ich hab die Methoden vielleicht auch nicht richtig verstanden.
Equals vergleicht wohl zwei Objecte miteinander und hashcode() gibt mir den hashcode von nem Set und so kann man zwei Sets miteinander vergleichen, oder anders?
In beiden Methoden steht super, was aber doch eigentlich auf eine höhere Klasse referenziert. Muss ich das da vielleicht nur mit this tauschen?


----------



## eRaaaa (23. Nov 2009)

ich habs mir jetzt nicht genau angeschaut, aber bei der map ist es so, dass der KEY nicht doppelt vorkommen kann, value allerdings schon.

```
map.put(1, "hallo");
		map.put(2, "hallo");
```
würde also gehen

hier allerdings:

```
map.put(1, "hallo");
		map.put(2, "hallo");
		map.put(1, "welt");
```

1, hallo wird nun durch 1, welt ersetzt. (also immernoch nur 2 elemente nur vorhanden)

bei dir ist ja person das value, kann also gut sein dass da gleiche personen drinnen stehen


----------



## Kremsn (24. Nov 2009)

okay hab das bei aufgabe 2 mit der Map jetzt hinbekommen und keine doppelten einträge mehr. Allerdings steh ich bei aufgabe3 immernoch auf dem Schlauch und weiß nich wie ich das umsetzen kann und was ich mit equals() und hashcode() da anfange.


----------



## eRaaaa (24. Nov 2009)

ja equals und besonders hashcode brauchst du für das hashset. die musst du in deiner personen-klasse implementieren, infos dazu gibt es hier:
(Java Blog Buch : 04.03.11 Besondere Methoden (equals, hashCode und toString))


----------



## Kremsn (24. Nov 2009)

jeaah läuft jetz. Vielen Dank nochmal für deine Mühe


----------

