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

原文 标签 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。
如何避免这种冗余?

最佳答案

代价实际上并不是您想的那样:您只对内存中的同一Position对象持有一个引用(在大多数系统上为四个字节)。开销很小。甚至不用担心。

相关文章:

c++ - 如何在C++中使用自定义类型作为 map 的键?

java - 如何在Servlet中使用属性键值

java - 如何遍历LinkedHashMap并分别在键和值之间进行选择?

java - 如何在Java中将数组插入哈希表而无需初始化?

java - 轮询会阻止LinkedBlockingQueue中的其他操作吗?

java - 使用Hector在Cassandra中查询CompositeType列

android - 在列表 View 中重复的Arraylist <hashmap <>>值

java - 如何在Java中为AES算法创建自己的密钥?

java - 如何在项目浏览器中选择项目元素(Eclipse插件)

java - Firebase Firestore子集合的排序和限制