In una riga di risposta posso dire che dovresti usare:
Float.floatToIntBits(sectionID) == Float.floatToIntBits(currentSectionID)
Per apprendere di più sull'uso corretto degli operatori correlati, sto elaborando alcuni casi qui: in generale, ci sono tre modi per testare le stringhe in Java. Puoi usare ==, .equals () o Objects.equals ().
Come sono differenti? == verifica la qualità di riferimento nelle stringhe, il che significa scoprire se i due oggetti sono uguali. D'altra parte, .equals () verifica se le due stringhe hanno lo stesso valore logicamente. Infine, Objects.equals () verifica eventuali null nelle due stringhe, quindi determina se chiamare .equals ().
Operatore ideale da usare
Bene, questo è stato oggetto di numerosi dibattiti perché ciascuno dei tre operatori ha il proprio insieme unico di punti di forza e di debolezza. Esempio, == è spesso un'opzione preferita quando si confronta il riferimento a un oggetto, ma ci sono casi in cui può sembrare che paragonino anche i valori di stringa.
Tuttavia, ciò che ottieni è un valore di caduta perché Java crea l'illusione che stai confrontando i valori, ma in realtà non lo sei. Considera i due casi seguenti:
Caso 1:
String a="Test";
String b="Test";
if(a==b) ===> true
Caso 2:
String nullString1 = null;
String nullString2 = null;
//evaluates to true
nullString1 == nullString2;
//throws an exception
nullString1.equals(nullString2);
Pertanto, è meglio utilizzare ciascun operatore durante il test dell'attributo specifico per cui è progettato. Ma in quasi tutti i casi, Objects.equals () è un operatore più universale, quindi l'esperienza degli sviluppatori web lo sceglie.
Qui puoi ottenere maggiori dettagli: http://fluentthemes.com/use-compare-strings-java/