Ich möchte in der Lage sein, die Position eines Objekts mit der Methode indexOf zurückzugeben, aber nur den Namen des Kontakts übergeben, um nach diesem zu suchen, gibt es eine Möglichkeit für das zu tun?Verwenden von IndexOf mit einem customObject in einer ArrayList
Im Moment habe ich diese Methode:
private static ArrayList<Contacts> contactList = new ArrayList<Contacts>();
public class Contacts {
private String name;
private String number;
public Contacts(String name, String number) {
this.name = name;
this.number = number;
}
public String getName() {
return name;
}
public String getNumber() {
return number;
}
public void setName(String name) {
this.name = name;
}
public void setNumber(String number) {
this.number = number;
}
public int findItem(String name) {
return contactList.indexOf(name);
}
Nein, es ist immer noch O (n). Diese Art von "Optimierung" macht die Dinge wahrscheinlich langsamer, weil das Abrufen von Elementen von beiden Enden der Liste mehr Cache-Fetches verursachen kann. –
Die Komplexität ist O (n). Sie machen vielleicht halb so viele Iterationen in Ihrer for-Schleife, aber Sie überprüfen immer noch jedes Element. Das ist nicht besser, als das Ganze eins nach dem anderen zu wiederholen. – nasukkin
Ich sehe. Danke für die Abklärung. Ich fühle, dass dies im Durchschnitt dich schneller auf die Antwort bringen wird? @AndyTurner –