对象如何从HashMap获取其密钥?

时间:2014-06-02 20:06:58

标签: java hashmap key containment

假设我有一个用HashMap定义的棋盘

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

我将Position声明为

class Position{
  int x;
  int y;
}

当我尝试为Field对象创建一个类时遇到问题:Field应该包含Position,因为它是由它定义的。实施例

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

但是Position对象将用于HashMap。 我怎么能避免这种冗余?

1 个答案:

答案 0 :(得分:2)

成本实际上并不是您的想法:您只是将一个引用(大多数系统上的四个字节)保存到内存中的同一个Position对象。开销很小;别担心。