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?

War es hilfreich?

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
scroll top