Für eine Android-App habe ich die folgenden Funktionen
private ArrayList<String> _categories; // eg ["horses","camels"[,etc]]
private int getCategoryPos(String category) {
for(int i = 0; i < this._categories.size(); ++i) {
if(this._categories.get(i) == category) return i;
}
return -1;
}
Ist das der "beste" Weg, eine Funktion zum Abrufen der Position eines Elements zu schreiben? Oder gibt es in Java eine ausgefallene native Shmancy-Funktion, die ich nutzen sollte?
==
... es ist einfach nicht die richtige Art von Vergleich ;-)
String.equals
eher so, wie ===
es in einer Sprache wie JavaScript sein könnte? z.B. prüft gegen Wert UND Typ?
==
Ist Objektidentität und bedeutet "ist das gleiche Objekt" . (Diese Ansicht gilt sowohl für primitive Werte als auch für Referenztypen, wenn Sie bedenken, dass es nur eine Zahl mit dem Wert 42 oder char 'x' usw. gibt.) Object.equals
ist eine virtuelle Methode, die für alle Objektinstanzen definiert ist und bedeutet "hat den gleichen Wert" , da alle Klassentypen Object erweitern und für alle Objektgleichheitstests verwendet werden sollten. Es gibt viele Fragen bei Cover ==
vs Object.equals
und dies ist ein sehr wichtiges Konzept zu verstehen! Zum Beispiel ist dies falsch : "hello" == new String("hello")
! Doh!
==
führt in den meisten Fällen zu falschen Ergebnissen.