java - 使用hashmap实现单键到多个值的映射

标签 java hashmap

我在表中配置了一个使用 test_id_val 的 tag_ids 列表。我使用以下查询检索数据

Select test_id_val , tag_id from p_details

对于简单的情况,我宁愿使用 HashMap 来存储键值对并检索数据,但在我的情况下,test_id_val 可以接受空值

例如,考虑以下结构:

 1. APP TR202 
 2. APP TR204 
 3. APP TR205 
 4.NULL TR206 
 5.NULL TR207 
 6.NULL SM504 
 7.NULL SM505

因此,我将有一个 tag_ids 值列表来映射到 test_id 键,该键可以为 null 或包含值。我的要求是将 test_id 键映射到 tag_ids 列表

有具体的方法吗?

感谢您的帮助和时间..

最佳答案

您可以考虑使用 com.google.common.collect.Multimap 的某种实现。

您可以将多个值与一个键关联,然后使用 map.get(key) 方法将它们作为集合检索。对于您的情况:

Multimap<String, String> mmap = HashMultimap.create();

mmap.put("APP", "TR202");
mmap.put("APP", "TR204");
mmap.put("APP", "TR205");
mmap.put(null, "TR206");
mmap.put(null, "TR207");
mmap.put(null, "SM504");
mmap.put(null, "SM505");

for (String key : mmap.keySet()) {
  for (String value : mmap.get(key)) {
    System.out.println(key + ": " + value);
  }
}

打印:

null: SM505
null: SM504
null: TR207
null: TR206
APP: TR202
APP: TR205
APP: TR204

关于java - 使用hashmap实现单键到多个值的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18691518/

相关文章:

java - 在文件中写入 '\t' '\n' 等字符,例如 string_?

java - 在 Java Web 应用程序中的单独线程中上传文件

java - 在 Java jar (ear,war,...) 文件中搜索类/方法

java - 为什么要在多线程环境下使用HashMap?

C - 初始化哈希表

java - 对于包含多个值并转换为数组的映射,正确的语法是什么

java - 在 Java 中使用静态嵌套类有什么缺点?

java - 通过对象 HashMap (java) 进行具有保存功能的设置的 GUI

java - TreeMap Key、Value 对存在,但 .get(Key) 返回值为 null

android - 理解 HashMap - 向 HashMap 中插入数据