Kontainerklasse mit eindeutigem Key

Globetrotter

Mitglied
Hallo zusammen

Ich arbeite gerade wieder mal was mit Java.
Gibt es eine Containerklasse die eine Art Primärkey bietet, also wo ein Eintrag nur ein mal drinnen sein kann.
Ich will eine 1 zu N Beziehung mit 2 Containern aufbauen. Gemacht habe ich sowas schon mal, also ausserhalb einer DB, habe jetzt aber keine Ahnung ob das in Java, C++, oder irgendeiner 3rt Party Library war.

Irgendwelche Ideen für Java?

Danke und Gruss
 

Globetrotter

Mitglied
Danke, da hatte ich als erstes nachgesehen. Entweder war es zu spät in der Nacht
oder ich konnte es anhand der komplizierten Beschreibung nicht erkennen.
Gibt es da ein kleines Beispiel wo es einfach beschrieben ist.
 

Robat

Top Contributor
Naja Beispiele gibt es ja wie Sand am Meer.

Wichtig bei HashMap ist, das Einträge mit dem selben Key überschrieben werden.
Java:
Map<Integer, String> map = new HashMap<>();
map.put(1, "Foo");
map.put(2, "Bar");
map.put(1, "Foobar");
System.out.println(map);
Liefert als Ausgabe 1 = Foobar, 2=Bar.

Ein Beispiel für ein HashSet könnte so aussehen.
Java:
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(1);
System.out.println(set);
Würde als Aussgabe 1, 2 liefern.
 

Globetrotter

Mitglied
Danke für einen Teil meiner Zwecke könnte das reichen.
ich teste später was alles passt.

BTW: Ich vermute zusammengesetzte Primär Keys gehen nach wie vor nur auf DB Basis.
 

Robat

Top Contributor
Ich denke er weiß schon was mit zusammengesetzten Primarschlüsseln gemeint ist.
Es ist aber nicht ganz ersichtlich was du im Zusammenhang mit Java damit meinst. Wenn du ein Key aus mehreren Attributen willst (bspw einem String und einem int) musst du das ganze in ein entsprechendes Objekt (eine eigene Klasse) wrappen.
 

mrBrown

Super-Moderator
Mitarbeiter
BTW: Ich vermute zusammengesetzte Primär Keys gehen nach wie vor nur auf DB Basis.
Man kann alles, was eine DB kann, auch in Java darstellen. Gibt auch rein in Java geschriebene DBs.

Allerdings ist es meistens alles andere als sinnvoll, Datenbanken in Objektorientierte Sprachen nachzubauen. Stattdessen könnte man es einfach objektorientiert machen...

Falls du auf das Hä? anspielst: das gilt in Deutschland zwar als unhöflich, hat aber aufgrund der sehr universellen Verständlichkeit hohen praktischen Wert und gilt deshalb als das wichtigste Wort der Welt.;)
im Norden ist doch alles, was über "Hä" hinaus geht, schon viel zu perönlich und deshalb unhöflich :cool:
 

Globetrotter

Mitglied
im Norden ist doch alles, was über "Hä" hinaus geht, schon viel zu perönlich und deshalb unhöflich :cool:
Ich vermute im Süden, in der Schweiz hat man damit auch ruck zuck seinen Job los.
Ist aber auch egal. Gibt weit wichtigeres. Schwamm drüber und zurück zum Thema.

Das mit dem "entsprechenden Objekt (eine eigene Klasse) wrappen"
War schon ein guter Hinweis.
 

Oben