如果有学生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;
}