我有一個帶有浮點鍵和字符串值的Java HashMap。現在給定一個不在HashMap中的Float,我怎麼找到與給定的Float最相似的鍵?Java HashMap找到最佳匹配鍵
回答
聽起來像java.util.NavigableMap
的實現之一的工作。
+ +1在人們用較少使用語言的實用程序回答時很有價值 – kommradHomer 2012-04-06 20:08:24
好的答案,可以使用'ceilingKey(K key)'和'floorKey(K key) '確定兩個最接近的鍵並計算哪一個更接近。 – 2012-04-06 20:40:54
聽起來不錯。我正在使用Android SDK 2.1,但無法找到該接口-.- – 2012-04-06 20:44:03
使用浮點數作爲HashMap中的鍵是一個非常糟糕的主意!
爲什麼這是一個壞主意? – 2012-04-06 20:37:16
浮點數不是整數值。你必須處理不明顯的計算差異。最後一位的小差異會導致不同的密鑰,因此導致 – 2012-04-06 20:43:09
我想你會更好使用一個簡單的數組/ ArrayList
,條目按鍵排序並執行Collections.binarySearch()
。如果沒有找到該條目,則返回最近的鄰居。
我建議你要絕對避免使用`HashMap`浮筒作爲鍵的最簡單方式
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;
}
}
- 1. Mongodb找到最佳匹配
- 2. 如何找到最佳數組匹配
- 3. 序言,找到最佳匹配
- 4. MySQL匹配()找不到最優匹配
- 5. 查找表的最佳匹配查詢
- 6. Eventbrite API - event_search - 尋找最佳匹配
- 7. android - 如何找出最佳匹配
- 8. 查找字符串值的最佳匹配 - Oracle/Java
- 9. 與R匹配的字符串:尋找最佳匹配
- 10. 4鍵值HashMap?陣列?最佳方法?
- 11. 使用Java在Hashmap中獲取匹配鍵和值
- 12. 找到與最佳匹配評級用戶
- 13. 爲什麼R中的agrep找不到最佳匹配?
- 14. 如何比較兩個數組並找到最佳匹配?
- 15. 如何從症狀中找到疾病的最佳匹配?
- 16. 從正則表達式捕獲組中找到最佳匹配
- 17. 算法找到可能返回沒有的最佳匹配
- 18. 如何找到二維數組所有列的最佳匹配?
- 19. 如何找到最佳的模糊字符串匹配?
- 20. 的UITextField找到陣列的最佳匹配串
- 21. 找到相互最佳匹配結果的查詢
- 22. 使用記分找到最佳匹配在SQL
- 23. 比較一組屬性以找到最佳匹配
- 24. 如何在OpenCV中找到最佳匹配?
- 25. 如何使用C++使用SURF OpenCV找到最佳匹配?
- 26. 找到多組對象的最佳匹配的算法
- 27. 如何找到數組中對象的最佳匹配?
- 28. MatchIt:最佳匹配失敗
- 29. Python - 最佳匹配搜索
- 30. R:最佳匹配比較
。 – Jack 2012-04-06 20:09:07
@Jack是因爲浮點數不夠精確,兩個相似的值可能會給出相同的散列值? – Lucas 2012-04-06 20:25:11
請定義「最相似的」 – 2012-04-06 21:50:22