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;
}
答案 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());
}