加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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());
}));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读