我有一个带有Float键和String值的Java HashMap。现在给出一个不在HashMap中的Float,我怎样才能找到与给定的Float最相似的键?
答案 0 :(得分:8)
听起来像是java.util.NavigableMap
的一个实现的工作。
答案 1 :(得分:1)
使用浮动作为HashMap中的键是一个非常糟糕的主意!
答案 2 :(得分:0)
我认为你最好使用一个简单的数组/ ArrayList
,其中的条目按键排序并执行Collections.binarySearch()
。如果未找到该条目,则返回最近的邻居。
答案 3 :(得分: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;
}
}