学生の配列から学生を削除する方法があります。これは私がこれまでに持っているものですが、うまくいかないようです。
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 が発生します。その配列から生徒を削除するにはどうすればよいですか?