COMPARTE ESTE ARTÍCULO

Las estructuras dinámicas de datos como ArrayList en Java son fundamentales para gestionar colecciones de datos de tamaño variable. A continuación, te presento una serie de ejercicios que te ayudarán a mejorar tus habilidades en el uso de ArrayList en Java.

Ejercicio 1: Gestión de Números

Crea un programa que permita al usuario ingresar una serie de números enteros en un ArrayList, calcular la suma, el promedio, el valor máximo y el valor mínimo de los números ingresados.

import java.util.ArrayList;
import java.util.Scanner;

public class GestionNumeros {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ArrayList<Integer> numeros = new ArrayList<>();
        int suma = 0;
        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;

        System.out.println("Ingrese números enteros (ingrese un número negativo para terminar):");
        while (true) {
            int num = scanner.nextInt();
            if (num < 0) break;
            numeros.add(num);
            suma += num;
            if (num > max) max = num;
            if (num < min) min = num;
        }

        if (numeros.size() > 0) {
            double promedio = (double) suma / numeros.size();
            System.out.println("Suma: " + suma);
            System.out.println("Promedio: " + promedio);
            System.out.println("Valor máximo: " + max);
            System.out.println("Valor mínimo: " + min);
        } else {
            System.out.println("No se ingresaron números.");
        }

        scanner.close();
    }
}

Ejercicio 2: Gestión de Cadenas

Escribe un programa que permita al usuario ingresar una serie de cadenas de texto en un ArrayList. Luego, el programa debe mostrar las cadenas ingresadas en orden inverso.

import java.util.ArrayList;
import java.util.Scanner;

public class GestionCadenas {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ArrayList<String> cadenas = new ArrayList<>();

        System.out.println("Ingrese cadenas de texto (ingrese 'fin' para terminar):");
        while (true) {
            String cadena = scanner.nextLine();
            if (cadena.equals("fin")) break;
            cadenas.add(cadena);
        }

        System.out.println("Cadenas ingresadas en orden inverso:");
        for (int i = cadenas.size() - 1; i >= 0; i--) {
            System.out.println(cadenas.get(i));
        }

        scanner.close();
    }
}

Ejercicio 3: Gestión de Estudiantes

Crea una clase Estudiante con atributos nombre y nota. Escribe un programa que permita ingresar varios estudiantes en un ArrayList, y luego mostrar la lista de estudiantes ordenada por nota de manera descendente.

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;

class Estudiante {
    private String nombre;
    private double nota;

    public Estudiante(String nombre, double nota) {
        this.nombre = nombre;
        this.nota = nota;
    }

    public String getNombre() {
        return nombre;
    }

    public double getNota() {
        return nota;
    }

    @Override
    public String toString() {
        return "Estudiante [Nombre: " + nombre + ", Nota: " + nota + "]";
    }
}

public class GestionEstudiantes {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ArrayList<Estudiante> estudiantes = new ArrayList<>();

        System.out.println("Ingrese los estudiantes (ingrese 'fin' como nombre para terminar):");
        while (true) {
            System.out.print("Nombre: ");
            String nombre = scanner.nextLine();
            if (nombre.equals("fin")) break;
            System.out.print("Nota: ");
            double nota = scanner.nextDouble();
            scanner.nextLine(); // Consumir el salto de línea

            estudiantes.add(new Estudiante(nombre, nota));
        }

        Collections.sort(estudiantes, Comparator.comparingDouble(Estudiante::getNota).reversed());

        System.out.println("Lista de estudiantes ordenada por nota descendente:");
        for (Estudiante estudiante : estudiantes) {
            System.out.println(estudiante);
        }

        scanner.close();
    }
}

Ejercicio 4: Gestión de Productos

Crea una clase Producto con atributos nombre y precio. Escribe un programa que permita agregar productos a un ArrayList, buscar un producto por su nombre y eliminar un producto por su nombre.

import java.util.ArrayList;
import java.util.Scanner;

class Producto {
    private String nombre;
    private double precio;

    public Producto(String nombre, double precio) {
        this.nombre = nombre;
        this.precio = precio;
    }

    public String getNombre() {
        return nombre;
    }

    public double getPrecio() {
        return precio;
    }

    @Override
    public String toString() {
        return "Producto [Nombre: " + nombre + ", Precio: " + precio + "]";
    }
}

public class GestionProductos {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ArrayList<Producto> productos = new ArrayList<>();

        while (true) {
            System.out.println("1. Añadir producto");
            System.out.println("2. Buscar producto");
            System.out.println("3. Eliminar producto");
            System.out.println("4. Listar productos");
            System.out.println("5. Salir");
            System.out.print("Seleccione una opción: ");
            int opcion = scanner.nextInt();
            scanner.nextLine(); // Consumir el salto de línea

            switch (opcion) {
                case 1:
                    añadirProducto(scanner, productos);
                    break;
                case 2:
                    buscarProducto(scanner, productos);
                    break;
                case 3:
                    eliminarProducto(scanner, productos);
                    break;
                case 4:
                    listarProductos(productos);
                    break;
                case 5:
                    System.out.println("Saliendo del programa.");
                    scanner.close();
                    return;
                default:
                    System.out.println("Opción no válida.");
            }
        }
    }

    private static void añadirProducto(Scanner scanner, ArrayList<Producto> productos) {
        System.out.print("Nombre del producto: ");
        String nombre = scanner.nextLine();
        System.out.print("Precio del producto: ");
        double precio = scanner.nextDouble();
        scanner.nextLine(); // Consumir el salto de línea

        productos.add(new Producto(nombre, precio));
        System.out.println("Producto añadido exitosamente.");
    }

    private static void buscarProducto(Scanner scanner, ArrayList<Producto> productos) {
        System.out.print("Ingrese el nombre del producto a buscar: ");
        String nombre = scanner.nextLine();

        for (Producto producto : productos) {
            if (producto.getNombre().equalsIgnoreCase(nombre)) {
                System.out.println("Producto encontrado: " + producto);
                return;
            }
        }

        System.out.println("Producto no encontrado.");
    }

    private static void eliminarProducto(Scanner scanner, ArrayList<Producto> productos) {
        System.out.print("Ingrese el nombre del producto a eliminar: ");
        String nombre = scanner.nextLine();

        for (Producto producto : productos) {
            if (producto.getNombre().equalsIgnoreCase(nombre)) {
                productos.remove(producto);
                System.out.println("Producto eliminado exitosamente.");
                return;
            }
        }

        System.out.println("Producto no encontrado.");
    }

    private static void listarProductos(ArrayList<Producto> productos) {
        if (productos.isEmpty()) {
            System.out.println("No hay productos para mostrar.");
        } else {
            for (Producto producto : productos) {
                System.out.println(producto);
            }
        }
    }
}

Conclusión

Estos ejercicios te proporcionarán una base sólida para trabajar con ArrayList en Java. Practicar estos conceptos es esencial para desarrollar tus habilidades de programación y te permitirá abordar problemas más complejos en el futuro. ¡Sigue practicando y explorando más sobre Java para convertirte en un programador más competente!

… … …

¡Coméntanos que te ha parecido este artículo al final de la página!

TÚ OPINIÓN IMPORTA


NUESTRAS ÚLTIMAS PUBLICACIONES

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO