ArrayLists, HashMaps, etc. vereinigen.

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo Leute,

ist es in Java möglich ArrayLists und HashMaps zu vereinigen bzw. zu schneiden, also so das doppelte Vorkommen vermieden werden.

Beste Grüße,

Stephan
 
Hae? Meinst du dass in der ArrayList nicht die gleichen Werte wie in der HashMap stehen?

Du kannst mittels Map#values() eine Collection mit allen Values holen. Den Rest zu prüfen ist ja kein Problem..
 
Ohhhhhhhh, da hab ich mich komplett falsch ausgedrückt. Sorry. Meine Frage war so gemeint, dass ich versuche 2 ArrayLists miteinander zu vereinigen, so dass eben doppelte Vorkommen nicht nochmal in die ArrayList geschrieben werden. Das ganze wollte ich dann auch für HashMaps wissen.
Also ArrayLists mit ArrayLists und HashMaps mit HashMaps... 🙂
 
Wie Der Müde Joe schon angedeutet hat: Wenn du zwei ArrayLists vereinigen willst, wäre es am einfachsten, das über ein Set zu regeln
Code:
ArrayList a = ...
ArrayList b = ...
Set s = new hashSet();
s.addAll(a);
s.addAll(b);
ArrayList result = new ArrayList();
result.addAll(s);
Geht vmtl. auch effizienter, aber so ist es am wenigsten Aufwand, falls es nicht extrem zeitkritisch ist.
 
zu ueberlegen ist ob man nicht gleich ein Set nimmt anstatt eine ArrayList.

wegen der Hashmap:
da musst du aufpassen. Eine Map kann immer nur einen key fuer nen value haben, d.h. es geht schonmal gar nicht, dass doppelte Keys vorkommen. oder sind es da die values die du willst ?
 
Erstmal danke für eure Tipps, das mit den Sets ist schonmal sehr interessant für mich. Nun kann ich mein Problem jedoch etwas besser schildern denke ich. Und zwar arbeite ich auf nem Graphen und habe über ne HashMap jedem "meiner" Knoten einen Nachfolger bestimmt, den ich diesem Knoten zuordnen will. Soweit ist eine HashMap gut für mich zu benutzen. Nun ist das Problem, dass ich verschiedene "Strategien" zusammenwerfen will. Jedoch könnte zum Beispiel in einem Lauf ein Nachfolger bestimmt werden der vorher genau schonmal so bestimmt wurde. Zum Beispiel: Knoten 3 -> Knoten 6. Das will ich vermeiden dies doppelt in meiner neuen HashMap einzutragen, bzw. wie oben erklärt führt das sowieso zu Problemen. Aber gibt es da ne einfache Methode, 2 HashMap zu einer zusammenzufügen ohne Doppelauftreten???

Erstmal danke für eure Tipps, das mit den Sets ist schonmal sehr interessant für mich. Nun kann ich mein Problem jedoch etwas besser schildern denke ich. Und zwar arbeite ich auf nem Graphen und habe über ne HashMap jedem "meiner" Knoten einen Nachfolger bestimmt, den ich diesem Knoten zuordnen will. Soweit ist eine HashMap gut für mich zu benutzen. Nun ist das Problem, dass ich verschiedene "Strategien" zusammenwerfen will. Jedoch könnte zum Beispiel in einem Lauf ein Nachfolger bestimmt werden der vorher genau schonmal so bestimmt wurde. Zum Beispiel: Knoten 3 -> Knoten 6. Das will ich vermeiden dies doppelt in meiner neuen HashMap einzutragen, bzw. wie oben erklärt führt das sowieso zu Problemen. Aber gibt es da ne einfache Methode, 2 HashMap zu einer zusammenzufügen ohne Doppelauftreten???

Vielen Dank.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben