java - 如何使用两个数字作为映射键

标签 java performance data-structures collections key

我有两个数字,我想将它们一起用作 Map 中的键.目前,我正在连接它们的字符串表示形式。例如,假设关键数字是 4 和 12。我使用:

String key = 4 + "," + 12;

map 声明为Map<String, Object> .

我觉得这太糟糕了!我喜欢使用 String 以外的东西作为 key !我想要以最快的方式创建这些 key 。

谁有好主意?

最佳答案

创建一个包含这两个数字的对象并将其用作键。例如:

class Coordinates {

  private int x;
  private int y;

  public Coordinates(int x, int y) {
     ...
  }

  // getters

  // equals and hashcode using x and y
}

Map<Coordinates, Location> locations = new HashMap<Coordinates, Location>();

如果您更喜欢数学方法,请参阅 this StackOverflow answer .

关于java - 如何使用两个数字作为映射键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1430822/

相关文章:

java - 为什么tomcat比提供静态资源的nodejs快

data-structures - 哈希表 : why size should be prime?

java - 在 tomcat + jsf 中的 https 之后重定向到 http

java - Java 的“3-50-201 4' is ' 3-2-2018”?

java - 玩 Framework 2.0 和 EBean,包装 INFORMATION_SCHEMA

java - GridView 行为不正确

database - 缓解大型网站数据库 I/O 瓶颈的最佳方法是什么?

java - 为什么相加解析的 double 比在 Java 中使用 BigDecimal 慢?

java - 为什么二叉堆是树结构?

algorithm - 如何计算不同底数的对数项之和?