Ich habe eine Java HashMap mit Float-Schlüssel und String-Werte. Jetzt, wo ein Float gegeben wird, der nicht in der HashMap ist, wie kann ich den Schlüssel finden, der dem gegebenen Float am ähnlichsten ist?Java HashMap finden am besten passenden Schlüssel
Antwort
Klingt wie ein Job für eine der Implementierungen von java.util.NavigableMap
.
+1 es ist so wertvoll, wenn die Leute antworten mit weniger verwendeten Dienstprogramme der Sprachen – kommradHomer
Gute Antwort, könnte man dann 'deckeKey (K-Taste)' und 'floorKey (K-Taste) 'um die zwei am nächsten liegenden Schlüssel zu bestimmen und zu berechnen, welcher näher ist. –
hört sich gut an. Ich arbeite mit Android SDK 2.1 ,, aber kann diese Schnittstelle nicht finden -.- –
Floats als Schlüssel in einer HashMap zu verwenden ist eine sehr schlechte Idee!
Warum ist das eine schlechte Idee? –
float ist kein integraler Wert. Sie müssen mit nicht offensichtlichen Berechnungsunterschieden umgehen. kleiner Unterschied im letzten Bit verursacht einen anderen Schlüssel und daher Ergebnis –
Ich denke, Sie sind besser mit einem einfachen Array/ArrayList
mit Einträgen nach dem Schlüssel sortiert und führen Collections.binarySearch()
. Wenn der Eintrag nicht gefunden wird, gibt er den nächsten Nachbarn zurück.
Der einfachste Weg
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. Jquery finden am nächsten passenden Element
- 2. Wie finde ich den am besten passenden Schlüssel in einem PHP-Array?
- 3. Die besten passenden paarweisen Punkte aus 2 Vektoren finden
- 4. Was ist der beste Weg, den am besten passenden Typ zu einem bestehenden Typ zu finden?
- 5. Java HashMap Schlüssel Wert speichern und abrufen
- 6. Java - Gründe, null als HashMap-Schlüssel zuzulassen?
- 7. Wie am besten Eingabe in Java Webapp
- 8. Welche Java-Sammlung eignet sich am besten für dieses Szenario
- 9. HashMap-Schlüssel Hashcode kann fehlschlagen?
- 10. Finden Sie am besten passende überlappende Polygone in R
- 11. Java hashmap Schlüsseliteration
- 12. Kollisionsauflösung in Java HashMap
- 13. finden nicht-passenden Excel-Wert
- 14. Java finde mehrere tiefste Schlüssel/Wert-Paare in einer Hashmap
- 15. For-Schleife Hashmap Java
- 16. HashMap-Java-Programm Probleme
- 17. JAVA - Geordnete HashMap Implementierung mit Änderung Schlüssel Name Funktion
- 18. Hashcode für NULL-Schlüssel in HashMap
- 19. Wie liest man am besten eine Komma-getrennte Konfigurationsdatei?
- 20. String-Schlüssel nicht in HashMap
- 21. Unveränderliche Objekte und hashmap Schlüssel
- 22. Finden von passenden Submatrizen in einer Matrix
- 23. Kann ein Java-Array als HashMap verwendet werden Schlüssel
- 24. Warum bekomme ich doppelte Schlüssel in Java HashMap?
- 25. Java: Suche in HashMap-Schlüssel basierend auf Regex?
- 26. Eigene Klasse als Schlüssel in Java setzen Hashmap
- 27. Wie hashmap Werte mit demselben Schlüssel zu summieren java
- 28. Welches Audioformat wäre am besten?
- 29. Am besten vergleichen 2 URLs
- 30. GMM passt am besten Modell
ich Ihnen vorschlagen, absolut zu vermeiden, mit Schwimmern als Schlüssel ein 'HashMap' verwenden. – Jack
@Jack ist das, weil die Floats nicht genau genug sind und zwei ähnliche Werte den gleichen Hash-Wert geben können? – Lucas
Bitte definieren "am ähnlichsten" –