java - java中带有二维键的映射

标签 java hash map

我想要一个由 Java 中的两个键索引的映射(一个您使用两个键放置和检索值的映射)。为了清楚起见,我正在寻找以下行为:

map.put(key1, key2, value); 
map.get(key1, key2); // returns value
map.get(key2, key1); // returns null
map.get(key1, key1); // returns null

最好的方法是什么?更具体地说,我应该使用:

  • Map<K1,Map<K2,V>>

  • Map<Pair<K1,K2>, V>

  • 其他?

(其中K1,K2,V分别是第一个key、第二个key和value的类型)

最佳答案

您应该使用 Map<Pair<K1,K2>, V>

  1. 它只会包含一张 map , 而不是 N+1 个 map

  2. key 构造 将是显而易见的(创建 对)

  3. 没有人会感到困惑 map 的意义 面向程序员的 API 不会改变。

  4. 在数据结构中的停留时间会更短,如果你以后发现需要同步它,这很好。

关于java - java中带有二维键的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6373443/

相关文章:

java - 有没有办法只从java应用程序索引solr中的新数据

java - Android Firebase 存储 : How to get file size from firebase storage file url before downloading it?

java - 如何在 Spring4 Rest api 中流式传输大型 csv?

ruby-on-rails - 在哈希中获取空月份

c++ - 如何在 C++ 中将转换应用于 STL 映射

java - 如何将 try catch 异常更改为 WebDriverWait

arrays - 在 Ruby 中将数组转换为索引哈希

ruby - 如何打印 Ruby 哈希中的所有键值对?

java - 带有 map 的 BeanUtils

c++ - 将静态私有(private)映射初始化为空