Pergunta

Suponha que eu tenha um tabuleiro de xadrez definido com um HashMap

HashMap <Position,Field> chessboard = new HashMap <Position,Field>();

Eu declaro o Position como

class Position{
  int x;
  int y;
}

Quando eu estou tentando fazer uma classe para Field objeto encontro-me com um problema:o Field deve conter uma Position porque ele é definido por ele.Ex.

class Field {
  Position pos;
  int color;
  void draw(){
    // draw Field using pos
  }
}

Mas a Posição de objeto vai ser usado para HashMap.Como eu poderia evitar esta redundância?

Foi útil?

Solução

O custo não é realmente o que você acha:você só tem uma única referência (quatro bytes na maioria dos sistemas) para o mesmo Position objeto na memória.A sobrecarga é mínima;não se preocupe sobre isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top