我想要能夠使用indexOf方法返回對象的位置,但只想傳遞聯繫人的名稱來搜索此,有什麼辦法可以這要完成了嗎?使用indexOf與arrayList中的自定義對象
我現在有這樣的方法:
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);
}
不,它仍然是O(n)。這種「優化」可能會讓事情變得更慢,因爲從列表的任何一端獲取項目都可能導致更多的緩存抓取。 –
複雜度爲O(n)。你可能會在循環中做一半的迭代,但你仍然在檢查每一個元素。這並不比逐個迭代整個事物更好。 – nasukkin
我明白了。謝謝你的澄清。我覺得這樣平均會讓你更快地得到答案? @AndyTurner –