Float キーと String 値を持つ Java HashMap があります。HashMap にない Float が与えられた場合、与えられた Float に最も似ているキーを見つけるにはどうすればよいですか?
1933 次
4 に答える
8
の実装の 1 つの仕事のように聞こえjava.util.NavigableMap
ます。
于 2012-04-06T20:06:48.193 に答える
1
float を HashMap のキーとして使用するのは非常に悪い考えです!
于 2012-04-06T20:06:38.153 に答える
0
ArrayList
key と perform でソートされたエントリを持つ単純な array/ を使用する方が良いと思います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 に答える