当前位置: 首页 > 面试题库 >

获取地图的最小值(键,双精度)

督翰学
2023-03-14
问题内容

是否有一种方法(也许使用Google收藏夹)来获取a的最小值Map(Key, Double)

以传统方式,我将不得不根据值对地图进行排序,并选择第一个/最后一个。


问题答案:

您可以Collections#min()为此使用标准。

Map<String, Double> map = new HashMap<String, Double>();
map.put("1.1", 1.1);
map.put("0.1", 0.1);
map.put("2.1", 2.1);

Double min = Collections.min(map.values());
System.out.println(min); // 0.1

更新
:由于您也需要密钥,因此,我不会在CollectionsGoogle
Collections2API中看到任何方法,因为a
Map不是a Collection。该Maps#filterEntries()也不是真正有用的,因为你只知道在实际的结果
结束 迭代。


那么,最直接的解决方案是:

Entry<String, Double> min = null;
for (Entry<String, Double> entry : map.entrySet()) {
    if (min == null || min.getValue() > entry.getValue()) {
        min = entry;
    }
}

System.out.println(min.getKey()); // 0.1

(nullcheck在min左侧)



 类似资料:
  • 问题内容: 我正在尝试快速分隔双精度数的十进制和整数部分。我尝试了多种方法,但是它们都遇到了相同的问题… 有没有一种方法可以获取0.5678而不是0.567800000000034,而无需将数字转换为字符串? 问题答案: 无需将其转换为字符串,您可以将舍入到小数点后的位数,如下所示: 您的输出将是 0.5678

  • 问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 这是简单的方法。请勿将regex用于内置类型。

  • 我有一个关于浮点数的机器ε的天真问题。 我们知道,双浮点数的机器ε约为10^-16,而浮点数的最小严格正值可以小到10^{-300}。既然机器ε是相对误差的上限,那么使用这个比机器ε小得多的数字10^{-300}有什么意义呢? 我一定是误解了浮点表示。你能澄清一下吗?

  • 如何在Java中从键盘读取双变量?我试图解决这个问题,但没有成功。上面说: 线程“main”java中出现异常。util。java上的输入不匹配异常。util。扫描仪。throwFor(Scanner.java:864)访问java。util。扫描仪。下一个(Scanner.java:1485)是java。util。扫描仪。nextDouble(Scanner.java:2413)位于Main。m

  • 问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 是简单的方法。请勿将regex用于内置类型。

  • 问题内容: 我正在尝试从文件中读取一些数字(双精度),并将它们存储在ArrayList和一个数组中(是,我需要两个),其代码如下: } 我尝试读取的文件是: 但是我的代码无法正常工作,hasNextDouble()函数什么也找不到,我在做什么错呢? 编辑:好的,所以我编辑了一下源代码(从Object [] []更改为Double [] []),并将插入值插入到ArrayList中之后,将插入值添加