如何从哈希映射中获取最低浮点值

时间:2011-10-06 21:29:47

标签: java map hashmap

我有一张如下图所示的地图。我想要做的是获得最小浮点值及其相应的键。浮点值也是例如3127668.8或1.786453E7,依此类推。我怎样才能做到这一点?

Map<String, Float> distance = new HashMap<String, Float>();

5 个答案:

答案 0 :(得分:8)

String str;
Float min =Float.valueOf(Float.POSITIVE_INFINITY );
for(Map.Entry<String,Float> e:distance.entrySet()){
    if(min.compareTo(e.getValue())>0){
        str=e.getKey();
        min=e.getValue();
    }
}

答案 1 :(得分:4)

一行代码:

Float min = Collections.min(distance.values());

JDK库很容易维护。

答案 2 :(得分:1)

迭代条目并进行比较。

或者,使用包装类来对项目条目进行比较以避免迭代,或者使用基于任意条件进行排序/排序的地图实现等。

答案 3 :(得分:1)

试试这个:

String minKey = null;
Float minValue = Float.MAX_VALUE;
for (Map.Entry<String, Float> entry : distance.entrySet()) {
    Float value = entry.getValue();
    if (value < minValue) {
        minKey = entry.getKey();
        minValue = value;
    }
}

答案 4 :(得分:0)

您可以遍历地图的入口集,即distance.entrySet(),它是Map.Entry对象的集合,它们基本上是键/值对。像这样:

Map.Entry<String,Float> minEntry;
for(entry : distance.entrySet()) {
    if(minEntry == null) {
        minEntry = entry;
        continue;
    }
    if(minEntry.getValue() > entry.getValue()) {
        minEntry = entry;
    }
}