Bueno, pues tengo una duda: intento que al eliminar un elemento de un array, se intercambien los valores de una posicion a otra, de tal manera que la última quede "null". ¿sería correcto así?
public void borraAlumno() {
String aux = JOptionPane.showInputDialog("Introduzca el nombre del alumno:");
for (int i = 0; i < contador; i++) {
if (personas[i].getNombre().compareTo(aux) == 0 && personas[i] instanceof Alumno) {
for (int j = i; j < contador; j++) {
personas[j] = personas[j + 1];
personas[contador] = null;
}
contador--;
}
}
}
También he pensado usar la funcion sort, pero no se si me dejaría los elementos vacíos al final.
Os pongo el método añadir pa que se entienda mejor (la variable contador indica si el array ya está completo o no, ya que su tamaño es de 6) :
public void añadeAlumno() {
if (contador >= 6) {
JOptionPane.showMessageDialog(null, "No quedan plazas libres.");
} else {
Alumno a = new Alumno();
a.setNombre(JOptionPane.showInputDialog("Nombre:"));
a.setDireccion(JOptionPane.showInputDialog("Direccion:"));
a.setCurso(JOptionPane.showInputDialog("Curso:"));
a.setTelefono(JOptionPane.showInputDialog("Telefono:"));
a.setRama(JOptionPane.showInputDialog("Rama:"));
a.setOptativa(JOptionPane.showInputDialog("Optativa:"));
personas[contador] = a;
contador++;
}
}
Felices fiestas a todos.