我有一个带有浮点键和字符串值的 Java HashMap。现在给定一个不在 HashMap 中的浮点数,我如何找到与给定浮点数最相似的键?
问问题
1933 次
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 回答