Wie kann ein Objekt seinen Schlüssel von einer HashMap erhalten?
-
20-12-2019 - |
Frage
Angenommen, ich habe ein Schachbrett, das mit einer HashMap definiert ist
HashMap <Position,Field> chessboard = new HashMap <Position,Field>();
Ich erkläre das Position
als
class Position{
int x;
int y;
}
Wenn ich versuche, einen Kurs für zu machen Field
Objekt Ich stoße auf ein Problem:Die Field
sollte ein enthalten Position
weil es dadurch definiert wird.Ex.
class Field {
Position pos;
int color;
void draw(){
// draw Field using pos
}
}
Aber das Position-Objekt wird für HashMap verwendet.Wie könnte ich diese Redundanz vermeiden?
Lösung
Die Kosten entsprechen nicht Ihren Vorstellungen:Sie haben nur eine einzige Referenz (vier Bytes auf den meisten Systemen) auf dasselbe Position
Objekt im Gedächtnis.Der Overhead ist minimal;Mach dir darüber keine Sorgen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow