3

Float キーと String 値を持つ Java HashMap があります。HashMap にない Float が与えられた場合、与えられた Float に最も似ているキーを見つけるにはどうすればよいですか?

4

4 に答える 4

8

の実装の 1 つの仕事のように聞こえjava.util.NavigableMapます。

于 2012-04-06T20:06:48.193 に答える
1

float を HashMap のキーとして使用するのは非常に悪い考えです!

于 2012-04-06T20:06:38.153 に答える
0

ArrayListkey と 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 に答える