在java中搜索ArrayList

我试图找出通过其ID号搜索ArrayList中的客户的最佳方式.以下代码无效;编译器告诉我,我错过了一个return语句.

Customer findCustomerByid(int id){
    boolean exist=false;

    if(this.customers.isEmpty()) {
        return null;
    }

    for(int i=0;i<this.customers.size();i++) {
        if(this.customers.get(i).getId() == id) {
            exist=true;
            break;
        }

        if(exist) {
            return this.customers.get(id);
        } else {
            return this.customers.get(id);
        }
    }

}

//the customer class is something like that
public class Customer {
    //attributes
    int id;
    int tel;
    String fname;
    String lname;
    String resgistrationDate;
}
编译器正在抱怨,因为您现在在for循环中有’if(exists)’块.它需要在它之外.

for(int i=0;i<this.customers.size();i++){
        if(this.customers.get(i).getId() == id){
            exist=true;
            break;
        }
}

if(exist) {
    return this.customers.get(id);
} else {
    return this.customers.get(id);
}

话虽如此,有更好的方法来执行这个搜索.就个人而言,如果我使用的是ArrayList,我的解决方案就像Jon Skeet发布的那样.

http://stackoverflow.com/questions/985229/search-in-java-arraylist

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在java中搜索ArrayList