Java HashMap Keyes generieren?

2 Antworten

Wenn du nicht willst, dass Duplikate in die Map gespeichert werden, dann musst du vor dem Einfügen prüfen, ob der Wert bereits enthalten ist.
Was du als Key setzt, bleibt dir überlassen. Es kann einfach nur ein index-Integer sein, den du hochzählst.

Woher ich das weiß:eigene Erfahrung – Ich habe selber lange im PC gearbeitet
Killig 
Fragesteller
 07.04.2022, 10:22

Also einfach noch nebenbei eine for-Schleife durchlaufen lassen, welche überprüft ob key1 schon in den vorherigen vorhanden ist?

0
ZaoDaDong  07.04.2022, 10:23
@Killig

Nein, nicht key1, sondern Value1. Du willst den Dateiinhalt doch als Value setzen, nehme ich an?!

0
Killig 
Fragesteller
 07.04.2022, 10:30
@ZaoDaDong

Ja aber das funktioniert ja so gesehen schon. Nur das ich "ausversehen" map.put(zeile, zeile); hinzugefügt habe. Also ist somit der key, als auch die value identisch. Das sieht dann aber bei der Ausgabe extrem unübersichtlich aus, weswegen ich als key einfach nur 1 = Plus, 2 = Dezimal, usw. haben möchte.

0
ZaoDaDong  07.04.2022, 10:31
@Killig

Genau, also lass einfach einen int bei jedem .put() hochzählen, den du dann als key nutzt.
Anhand des keys kannst du dann aber nicht erkennen, ob ein Value doppelt gesetzt wurde.

0
Killig 
Fragesteller
 07.04.2022, 10:33
@ZaoDaDong

Eben, das ist das Problem. Wenn ich map.put(zeile, zeile) hinzufüge, werde die dopelten nicht gesetzt.

0
ZaoDaDong  07.04.2022, 10:34
@Killig

Quick & Dirty kannst du zuerst die Variante Zeile,Zeile machen, das dann in eine neue Map packen, die int,Zeile besitzt.
Alternative: vor jedem .put(int,Zeile) durch die Map iterieren und prüfen, ob Zeile schonmal als Value vorkommt.

0

Hey,

was spricht denn dann gegen ein Set? Ein Set braucht keine Keys und lässt auch, anders als List, keine Doppelungen zu.

Mfg Jannick (L1nd)

Woher ich das weiß:eigene Erfahrung