3

我有一个带有浮点键和字符串值的 Java HashMap。现在给定一个不在 HashMap 中的浮点数,我如何找到与给定浮点数最相似的键?

4

4 回答 4

8

听起来像是java.util.NavigableMap.

于 2012-04-06T20:06:48.193 回答
1

在 HashMap 中使用浮点数作为键是一个非常糟糕的主意!

于 2012-04-06T20:06:38.153 回答
0

我认为你会更好地使用一个简单的数组/ArrayList条目按键排序并执行Collections.binarySearch()。如果未找到该条目,则返回最近的邻居。

于 2012-04-06T20:08:22.283 回答
0

最简单的方法

 HashMap<Float, String> map = new HashMap<Float, String>();

    Float newFloat = 123F;

    Float minDif = null;
    Float findedValue = null;

    for (Float key : map.keySet()) {
        Float dif = Math.abs(key - newFloat);
        if (minDif != null) {
            if (dif < minDif) {
                minDif = dif;
                findedValue = key;
            }
        } else {
            minDif = dif;
            findedValue = key;
        }
    }
于 2012-04-06T20:23:11.110 回答