可重复键值Map-TableMap

介绍

有时候我们需要键值对一一对应,但是又有可能有重复的键,也可能有重复的值,就像一个2列的表格一样:

key1value1
key2value2

因此,Hutool创建了TableMap这类数据结构,通过键值单独建立List方式,使键值对一一对应,实现正向和反向两种查找。

当然,这种Map无论是正向还是反向,都是遍历列表查找过程,相比标准的HashMap要慢,数据越多越慢。

使用

  1. TableMap<String, Integer> tableMap = new TableMap<>(new HashMap<>());
  2. tableMap.put("aaa", 111);
  3. tableMap.put("bbb", 222);
  4. // 111
  5. tableMap.get("aaa");
  6. // 222
  7. tableMap.get("bbb");
  8. // aaa
  9. tableMap.getKey(111);
  10. // bbb
  11. tableMap.getKey(222);
  12. // [111]
  13. tableMap.getValues("aaa");
  14. //[aaa]
  15. tableMap.getKeys(111);