CRUD de usuarios en Java con ArrayList
Este código implementa un CRUD (Crear, Leer, Actualizar y Eliminar) de usuarios en Java utilizando un ArrayList para almacenar los registros en memoria.
A través de un menú interactivo en consola, el programa permite al usuario crear nuevos registros, mostrar la lista completa, modificar datos existentes y eliminar usuarios por su ID. Además, se utiliza un contador para asignar identificadores automáticos y un Scanner para la entrada de datos, lo que hace que este ejemplo sea una práctica sencilla y clara para comprender cómo manejar colecciones y operaciones básicas en Java.
📎Simular la descarga de archivos en distintos hilos en Java
Código completo:
package com.mycompany.cruddeusuarios;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class CrudUsuarios {
// Creamos una Arraylist llamada usuarios de tipo Usuario 'hace referencia a la clase creada'.
// estático, pertenece a la clase y no a la instancia.
private static ArrayList usuarios = new ArrayList<>();
// Un contador donde guardaremos los ids automáticos.
private static int contadorId = 1;
// La clase Scanner para recibir datos del usuario.
private static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
int numero;
// Mientras no se pulse en salir el menú se seguirá ejecutando,
// pero al menos se ejecuta una vez:
do{
// Simplemente un menú de opciones,
System.out.println("---------- Menú de opciones --------");
System.out.println("1º Crear usuario.....");
System.out.println("2º Leer usuario.....");
System.out.println("3º Actualizar usuario.....");
System.out.println("4º Eliminar usuario.....");
System.out.println("0º Salir.....");
// Pedimos el valor númerico al usuario.
numero = sc.nextInt();
sc.nextLine(); // limpiar buffer
switch (numero) {
case 1:
crearUsuario();
break;
case 2:
leerusuario();
break;
case 3:
actualizarUsuario();
break;
case 4:
eliminarusuario();
break;
case 0:
System.out.println("Saliendo...........");
break;
default:
throw new AssertionError();
}
}while(numero!=0);
// Creamos los métodos que nos van a permitir nuestra tarea:
// Método para crear usuario:
// Solicitamos los datos del usuario.
}
public static void crearUsuario()
{
System.out.println("Ingrese el nombre del usuario: ");
String nombre = sc.nextLine();
System.out.println("Ingrese el email del usuario: ");
String email = sc.nextLine();
System.out.println("Ingrese la edad del usuario: ");
int edad = sc.nextInt();
// Creamos una instancia de usuario llamada usuarioUno.
// El constructor recibe los valores recibidos con la clase scanner.
// El id se autoincrementa, post-incremento"Devuelve el valor y luego incrementa"
Usuario usuario = new Usuario(contadorId++, nombre, email, edad);
// Añadimos el usuario a la lista de usuarios.
usuarios.add(usuario);
System.out.println("El usuario se ha creado con éxito");
}
// Recorremos la lista imprimiendo los usuarios almacenados.
public static void leerusuario()
{
// Si la lista está vacia deberíamos de informar de ello.
if (usuarios.isEmpty())
{
System.out.println("No existen usuarios en la lista…..");
} else{
for (Usuario usuarioR : usuarios) {
System.out.println(usuarioR);
}
}
}
// Actualizamos los datos, pero mostramos el anterior dato con el get
// y modificamos con el set.
public static void actualizarUsuario()
{
System.out.println("Debes proporcionar el id del usuario a actualizar");
int id = sc.nextInt();
sc.nextLine();
for (Usuario usuarioA : usuarios) {
if (usuarioA.getId() == id) {
System.out.println("Nombre antiguo: " + usuarioA.getNombre());
System.out.println("Ingrese su nuevo nombre");
String nombre = sc.nextLine();
System.out.println("Nombre nuevo: " + usuarioA.getNombre());
usuarioA.setNombre(nombre);
System.out.println("Email antiguo: " + usuarioA.getEmail());
System.out.println("Ingrese su nuevo correo electrónico: ");
String email = sc.nextLine();
usuarioA.setEmail(email);
System.out.println("Correo nuevo: " + usuarioA.getEmail());
System.out.println("Edad antigua: " + usuarioA.getEdad());
System.out.println("Ingrese su edad: ");
int edad = sc.nextInt();
usuarioA.setEdad(edad);
System.out.println("Nueva edad: " + usuarioA.getEdad());
System.out.println("Se ha modificado todos los datos con éxito");
}
}
}
// Finalmente eliminamos el usuario seleccionado por el ID
public static void eliminarusuario() {
System.out.println("Introduce el ID a eliminar del usuario: ");
int id = sc.nextInt();
// Creamos un objeto de tipo iterator.
Iterator it = usuarios.iterator();
// Mientras que existan elementos.
while (it.hasNext()) {
// Pedimos el ID necesario.
Usuario usuarioE = it.next();
if (usuarioE.getId() == id) {
// Eliminamos mientras recorremos sin provocar errores.
it.remove();
System.out.println("El usuario con ID " + id + " ha sido eliminado");
return; // salir después de eliminar
}
}
System.out.println("No se encontró ningún usuario con el ID " + id);
}
}




Solución:
---------- Menú de opciones --------
1º Crear usuario…..
2º Leer usuario…..
3º Actualizar usuario…..
4º Eliminar usuario…..
0º Salir…..
El usuario ingresa: 1
Ingrese el nombre del usuario:
Juan
Ingrese el email del usuario:
mediana@outlook.es
Ingrese la edad del usuario:
29
El usuario se ha creado con éxito
---------- Menú de opciones --------
1º Crear usuario…..
2º Leer usuario…..
3º Actualizar usuario…..
4º Eliminar usuario…..
0º Salir…..
El usuario ingresa: 1
Ingrese el nombre del usuario:
Elena
Ingrese el email del usuario:
elena@outlook.es
Ingrese la edad del usuario:
56
El usuario se ha creado con éxito
---------- Menú de opciones --------
1º Crear usuario…..
2º Leer usuario…..
3º Actualizar usuario…..
4º Eliminar usuario…..
0º Salir…..
El usuario ingresa: 2
Usuario{id=1, nombre=Juan, email=mediana@outlook.es, edad=29}
Usuario{id=2, nombre=Elena, email=elena@outlook.es, edad=56}
---------- Menú de opciones --------
1º Crear usuario…..
2º Leer usuario…..
3º Actualizar usuario…..
4º Eliminar usuario…..
0º Salir…..
El usuario ingresa: 3
Debes proporcionar el id del usuario a actualizar.
El usuario ingresa: 1
Nombre antiguo: Juan
Ingrese su nuevo nombre
El usuario ingresa: Alex
Nombre nuevo: Juan
Email antiguo: mediana@outlook.es
Ingrese su nuevo correo electrónico:
El usuario ingresa: alex@hotmai.com
Correo nuevo: alex@hotmai.com
edad antigua: 29
Ingrese su edad:
El usuario ingresa: 45
Nueva edad: 45
Se ha modificado todos los datos con éxito
---------- Menú de opciones --------
1º Crear usuario…..
2º Leer usuario…..
3º Actualizar usuario…..
4º Eliminar usuario…..
0º Salir…..
4
Introduce el ID a eliminar del usuario:
El usuario ingresa: 3
No se encontró ningún usuario con el ID 3
---------- Menú de opciones --------
1º Crear usuario…..
2º Leer usuario…..
3º Actualizar usuario…..
4º Eliminar usuario…..
0º Salir…..
El usuario ingresa: 0
Saliendo………..
Seguir leyendo:




