我有一种从学生数组中删除学生的方法。这是我到目前为止所拥有的,但似乎不起作用。
public Student[] removeStudent(Student s) throws Exception{
boolean found = false;
for(int i = 0; i < nrStudents(this); i++){
if(students[i].equals(s)){
students[i] = null;
found = true;
break;
}
}
if (found == true){
return compact(students);
}
else
throw new Exception("Student Not Found.");
}
private Student[] compact(Student[] arr){
ArrayList<Student> list = new ArrayList<Student>();
for (Student s : arr){
if (!s.equals(null))
list.add(s);
}
arr = list.toArray(new Student[list.size()]);
return arr;
}
当我在数组中有 2 个或更多学生时,我得到一个 NullPointerException。如何从该数组中删除学生?