我如何在java中搜索保存在我的arraylist中的lastNames?

时间:2013-03-10 02:03:49

标签: java for-loop arraylist

public void searchLastName(String lastName)
{
    int size = list.size();

    for(int i = 0 ; i < size ; i++)
    {
        if(list.get(i).getLastName().equals(lastName))
            System.out.print(lastName+ " is located at " +i);
        else
            System.out.println("Cant find at loc:" +i);

    }
}

这段代码有问题吗?我无法搜索lastName ..请帮助我们

这是来自班级人员

public String getLastName() { return lastName; }

1 个答案:

答案 0 :(得分:0)

您的代码有什么问题,它会打印出所有不匹配位置的“无法找到...”消息,即使某些位置匹配也是如此。也许这就是你想要的。但是,如果您想要找到lastName的位置,您可以执行以下操作:

int found = -1;
for (int i = 0; i < size && found == -1; ++i) {
    if (list.get(i).getLastName().equals(lastName)) {
        found = i;
    }
}
if (found >= 0) {
    System.out.print(lastName+ " is located at " + found);
} else {
    System.out.println("Cant find " + lastName);
}

如果您想要找到它的所有位置,您可以执行以下操作:

List<Integer> found = new ArrayList<Integer>();
for (int i = 0; i < size; ++i) {
    if (list.get(i).getLastName().equals(lastName)) {
        found.add(i);
    }
}
if (found.isEmpty()) {
    System.out.println("Cant find " + lastName);
} else {
    System.out.print(lastName+ " is located at " + found.toString());
}