如何遍历哈希映射来查找前10个元素,例如,如果我的映射包含字符串作为键和int作为值,我想获取前10个最高整数值?哈希映射迭代
Q
哈希映射迭代
1
A
回答
-1
1
比方说,我们有Map
,我们被允许使用外部库 - Guava:
Map<String, Integer> map = Maps.newTreeMap();
map.put("A", 13);
map.put("B", 11);
map.put("C", 27);
map.put("D", 38);
map.put("E", 25);
map.put("F", 12);
map.put("G", 25);
map.put("D", 35);
map.put("H", 28);
map.put("R", 13);
map.put("N", 24);
map.put("T", 37);
创建番石榴MultiMap
从原来map
Multimap<String, Integer> multiMap = ArrayListMultimap.create();
for(String key : map.keySet()){
multiMap.put(key, map.get(key));
}
逆multiMap
添加条目,并复制到TreeMultiMap
TreeMultimap<Integer, String> reversed = TreeMultimap.create();
Multimaps.invertFrom(multiMap, reversed);
的条目来创建List
并获得前10个元素:
Lists.newArrayList(reversed.entries()).subList(0,10)
0
如果这是一个一次性的事情,你可以通过转换为一个列表,然后回LinkedHashMap中排序的HashMap:
Map<String, Integer> map = new HashMap<>();
map.put("A", 13);
map.put("B", 11);
map.put("C", 27);
map.put("D", 38);
map.put("E", 25);
map.put("F", 12);
map.put("G", 25);
map.put("D", 35);
map.put("H", 28);
map.put("R", 13);
map.put("N", 24);
map.put("T", 37);
// Take a List copy of the Map
List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(map.entrySet());
// Sort the list by the Value
Collections.sort(list, new Comparator<Entry<String, Integer>>() {
@Override
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return (o1.getValue()).compareTo(o2.getValue());
}
});
// Create new Map (use LinkedHashMap to maintain order)
Map<String, Integer> sortedMap = new LinkedHashMap<String, Integer>();
for (Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
相关问题
- 1. 迭代哈希映射
- 2. 迭代通过哈希映射'块'
- 3. 递归迭代哈希映射
- 4. 如何迭代通过哈希映射映射列表元素
- 5. 通过哈希映射映射,需要返回哈希映射
- 6. 哈希映射内的哈希映射的平均值
- 7. 哈希映射和并发哈希映射有什么区别?
- 8. 如何在哈希映射迭代,直到所需的对象
- 9. 通过嵌套哈希映射进行迭代
- 10. 如何迭代HTML模板中的哈希映射
- 11. 通过无迭代器的哈希映射循环
- 12. 迭代哈希映射ArrayList的难度为
- 13. 迭代哈希映射并获取字符串数组的值
- 14. 使用哈希映射
- 15. 排序哈希映射
- 16. 实现哈希映射
- 17. PowerShell哈希映射类型
- 18. 使用哈希映射
- 19. 哈希映射对象键
- 20. 哈希映射的成员?
- 21. 聚簇哈希映射
- 22. 方法从哈希映射
- 23. 映射到一个哈希
- 24. Python中的哈希映射
- 25. 我想创建一个哈希映射与内部映射和外部映射关系的哈希映射?
- 26. 映射迭代
- 27. 将可变哈希映射转换为不可变哈希映射
- 28. 哈希不能迭代
- 29. 迭代哈希设置
- 30. 迭代Emacs Lisp哈希表
什么你到目前为止尝试过吗?如果你向我们展示你的尝试会很好,它会给我们机会将你推向正确的方向 – Chaos