ArrayList: Parte 2.
ArrayList de Objetos en Java
Los ArrayList los podemos combinar con la POO por lo que tenemos la flexibilidad de
ambos, pudiendo resolver con ambos, gran cantidad de situaciones
Ejemplo: Gestión Alumnos.
public class Alumno {
private String nombre;
private String telefono;
private int edad;
public Alumno(String nombre, String telefono, int edad) {
[Link] = nombre;
[Link] = telefono;
[Link] = edad;
}
public String getNombre() {
return nombre;
}
public String getTelefono() {
return telefono;
}
public int getEdad() {
return edad;
}
public void setNombre(String nombre) {
[Link] = nombre;
}
public void setTelefono(String telefono) {
[Link] = telefono;
}
public void setEdad(int edad) {
[Link] = edad;
}
@Override
public String toString() {
return nombre + " (tlf: " + telefono + ", " + edad + " años)";
}
}
ArrayList: Parte 2.
Clase Principal
import [Link];
import [Link];
public class GestionAlumnos {
public static void main(String[] args) {
ArrayList<Alumno> alumnos = new ArrayList<>();
Scanner sc = new Scanner([Link]);
int opcion;
do {
[Link]("\n--- MENÚ ALUMNOS ---");
[Link]("1. Añadir alumno");
[Link]("2. Buscar alumno por nombre");
[Link]("3. Modificar teléfono");
[Link]("4. Eliminar alumno");
[Link]("5. Mostrar todos");
[Link]("6. Salir");
[Link]("Elige opción: ");
opcion = [Link]();
[Link](); // limpiar salto
switch (opcion) {
case 1 -> anadirAlumno(alumnos, sc);
case 2 -> buscarAlumno(alumnos, sc);
case 3 -> modificarTelefono(alumnos, sc);
case 4 -> eliminarAlumno(alumnos, sc);
case 5 -> mostrarAlumnos(alumnos);
case 6 -> [Link]("Saliendo...");
default -> [Link]("Opción no válida.");
}
} while (opcion != 6);
[Link]();
}
ArrayList: Parte 2.
// ---------------- MÉTODOS ----------------
public static void anadirAlumno(ArrayList<Alumno> alumnos, Scanner
sc) {
[Link]("Nombre: ");
String nombre = [Link]();
[Link]("Teléfono: ");
String telefono = [Link]();
[Link]("Edad: ");
int edad = [Link]();
[Link]();
[Link](new Alumno(nombre, telefono, edad));
[Link]("Alumno añadido.");
}
public static void buscarAlumno(ArrayList<Alumno> alumnos, Scanner
sc) {
[Link]("Nombre a buscar: ");
String buscado = [Link]();
boolean encontrado = false;
for (Alumno a : alumnos) {
if ([Link]().equalsIgnoreCase(buscado)) {
[Link]("Encontrado: " + a);
encontrado = true;
}
}
if (!encontrado) {
[Link]("No existe ningún alumno con ese
nombre.");
}
}
ArrayList: Parte 2.
public static void modificarAlumno(ArrayList<Alumno> alumnos, Scanner
sc) {
[Link]("Nombre del alumno a modificar: ");
String nombreMod = [Link]();
boolean modificado = false;
for (Alumno a : alumnos) {
if ([Link]().equalsIgnoreCase(nombreMod)) {
[Link]("Nuevo teléfono: ");
String nuevoTlf = [Link]();
[Link](nuevoTlf);
[Link]("Nueva edad: ");
int nuevaEdad = [Link]();
[Link](); // limpiar salto
[Link](nuevaEdad);
[Link]("Datos actualizados.");
modificado = true;
}
}
if (!modificado) {
[Link]("No se encontró el alumno.");
}
}
public static void eliminarAlumno(ArrayList<Alumno> alumnos, Scanner
sc) {
[Link]("Nombre del alumno a eliminar: ");
String nombreDel = [Link]();
boolean eliminado = [Link](a ->
[Link]().equalsIgnoreCase(nombreDel));
if (eliminado) {
[Link]("Alumno eliminado.");
} else {
[Link]("No se encontró el alumno.");
}
}
ArrayList: Parte 2.
public static void mostrarAlumnos(ArrayList<Alumno> alumnos) {
[Link]("\n--- LISTA DE ALUMNOS ---");
if ([Link]()) {
[Link]("No hay alumnos en la lista.");
} else {
for (Alumno a : alumnos) {
[Link](a);
}
}
}
}