我对Java很新。我编写了使用红黑树的代码:
TreeMap test = new TreeMap();
Map mainMap = new HashMap<>();
Map tempMap = new HashMap<>();
List<Integer> list = new ArrayList<>();
tempMap.put("Visa Credit Card",447747);
list.add(421323);
list.add(421630);
list.add(455451);
list.add(469375);
tempMap.put("Visa Debit card",list);
tempMap.put("Master Card Credit Card",523951);
tempMap.put("Master Debit Card",5399);
mainMap.put("ICCI",tempMap);
mainMap.put("Next",1234);
test.put("Values",mainMap);
System.out.println(mainMap);
打印出以下内容:
{Next=1234, ICCI={Master Card Credit Card=523951, Visa Debit card=[421323, 421630, 455451, 469375], Master Debit Card=5399, Visa Credit Card=447747}}
正如我所料。但是在这张地图中,我需要在地图中搜索一些值,例如455451
。如果这样做,我应该得到输出:
Visa Debit card, ICCI
。
是否可以在地图上进行搜索?
提前致谢。
答案 0 :(得分:5)
但是在这张地图中,我需要在地图中搜索一些值,例如455451。
基本上你需要遍历所有键/值对:
for (Map.Entry<String, List<Integer>> entry : map.entrySet()) {
if (entry.getValue().contains(targetValue)) {
System.out.println(entry.getKey());
}
}
显然这不是非常有效 - 如果你需要做很多事情,你可能也想创建一个反向地图,并保持两者同步。
您可能还想查看Guava的Multimap
类型。