Spigot/Java ein value aus einer HachMap löschen?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
Main.map.values().removeAll(Collections.singleton(town));

Das löscht alle Einträge aus der HashMap, welche town als Value haben.

Woher ich das weiß:eigene Erfahrung – Minecraft-Experte. Aktiver Spieler seit 2011.

CloudBeta 
Beitragsersteller
 16.01.2022, 18:21

Vielen dank das ist einfach und genau das, wonach ich gesucht habe :D

0

Check ob der der den command ausführt auch creator ist

Dann alle Elemente der Map durchgehen und schauen ob die Town vom creator gleich dem chunk ist den Player xy aus der Map hat dann den entfernen

Woher ich das weiß:Studium / Ausbildung – info studium

X.remove(Key)

Woher ich das weiß:Studium / Ausbildung – info studium

MrAmazing2  15.01.2022, 17:25

Lies die Frage.

Wenn mehrere in meiner town sind gibt es ja mehrere keys zu einem value und die muss ich ja irgendwie auflisten können um sie alle auf einmal zu löschen, weil dann das value nicht mehr exestert ODER gibt es eine möglichkeit ein value aus einer hashmap zu löschen?
1
CarinaSchoppe  15.01.2022, 17:27
@MrAmazing2

Aber hä. Zu einem Key gibt's immer nur einen value. Heißt ein Key hat nur einen. Value ein value kann mehrere Keys haben.

0
MrAmazing2  15.01.2022, 17:30
@CarinaSchoppe

Was er meint, ist, dass er mehrere Key-Value-Paare hat, viele mit der selben Value, und nun will er alle Einträge/Paare löschen, die eine bestimmte Value haben.

Key ist die Spieler-UUID und Value ist die Stadt, in welcher der Spieler ist.

Er will nun das löschen einer Stadt ermöglichen, und damit eben auch das löschen aller Einträge, wo ein Spieler diese Stadt als Value hat.

Anders ausgedrückt: Löschen by Value.

0
CarinaSchoppe  15.01.2022, 17:32
@MrAmazing2

Aaah. For Schleife. Alle values vergleichen dann diese aus der Map löschen lassen. Oder Map.values.removeAll(Town)

1