Java – 查找具有最大大小的哈希表
发布时间:2020-12-15 05:14:18 所属栏目:Java 来源:网络整理
导读:我有以下数据结构: MapInteger,MapString,Double----------------| | a 2 || 100 | b 1 | | | c 2 |----------------| | a 2 || 101 | c 2 | ----------------| | a 2 || 102 | b 1 | | | c 2 |---------------- 目标:获取包含具有最大大小的内部地图的外
我有以下数据结构:
Map<Integer,Map<String,Double>> ---------------- | | a 2 | | 100 | b 1 | | | c 2 | ---------------- | | a 2 | | 101 | c 2 | ---------------- | | a 2 | | 102 | b 1 | | | c 2 | ---------------- 目标:获取包含具有最大大小的内部地图的外部地图的ID. 例如,100或102,两者都包含大小为3的内部地图. 例如,我如何使用Stream API? 解决方法
这应该输出100或具有最大元素的键.
map.keySet().stream().max((v1,v2) -> { return Integer.compare(map.get(v1).size(),map.get(v2).size()); }) 或使用比较器 map.keySet().stream().max(Comparator.comparingInt(v -> map.get(v).size())) 完整代码: Map<Integer,Double>> map = new HashMap<>(); Map<String,Double> map100 = new HashMap<>(); map100.put("a",2.0); map100.put("b",1.0); map100.put("c",2.0); Map<String,Double> map101 = new HashMap<>(); map101.put("a",2.0); map101.put("b",1.0); Map<String,Double> map102 = new HashMap<>(); map102.put("a",2.0); map102.put("b",1.0); map102.put("c",2.0); map102.put("d",2.0); map.put(100,map100); map.put(101,map101); map.put(102,map102); System.out.println(map.keySet().stream().max(Comparator.comparingInt(v -> map.get(v).size()))); System.out.println(map.keySet().stream().max((v1,v2) -> { return Integer.compare(map.get(v1).size(),map.get(v2).size()); })); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |