如果找不到ID,则在循环中只打印一次



如果有学生ID,我可以打印一条消息,但如果找不到ID,我只想打印一次println

下面是我删除学生的代码

public void removeStudent(int studentId) {
for (int i = 0; i < students.size(); i++) {
if (students.get(i).getId() != studentId) {
continue;
}
System.out.println("Deleted a profile containing information for ID#: " + studentId + ".");
this.students.remove(i);
students = new ArrayList<>();
return;
}
}

为什么不在java.util.List中使用任何方法?我的意思是,如果我必须写一个方法,删除一个(或重复的(id并打印一些东西,我会写这样的

public void removeStudent(int studentId) {
if( students.contains(studentId)) {
students.removeIf(id -> id==studentId);
System.out.println("Deleted a profile containing information for ID#: " + studentId + ".");
}
else 
System.out.println("nothing to delete");
}

但如果你不想改变你的代码太多,你可以做一些类似的事情

public void removeStudent(int studentId) {
for (int i = 0; i < students.size(); i++) {
if (students.get(i).getId() != studentId) {
continue;
}
System.out.println("Deleted a profile containing information for ID#: " + studentId + ".");
this.students.remove(i);
students = new ArrayList<>();
return;
}
System.out.println(" Id not found ");
}

我非常确信流可以使这项工作比那些2段更顺利

BR

根据Tim的回答,我建议删除break以删除所有id相同但只打印一次的学生:

public boolean removeStudent(int studentId) {
boolean removed = false;
for (int i=0; i < students.size(); i++) {
if (students.get(i).getId() == studentId) {
System.out.println("Deleted a profile containing information for ID#: " + studentId + ".");
this.students.remove(i);
removed = true;
}
}
return removed;
}

最新更新