Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

02 Desafío: construyendo una nueva aplicación

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

public class RockHitsApp {
    private ArrayList<Cancion> listaCanciones = new ArrayList<>();
    private Scanner scanner = new Scanner(System.in);

    public RockHitsApp() {
        inicializarCanciones();
    }

    private void inicializarCanciones() {
        listaCanciones.add(new Cancion("Sweet Child O' Mine", "Guns N' Roses", 1987));
        listaCanciones.add(new Cancion("Livin' on a Prayer", "Bon Jovi", 1986));
        listaCanciones.add(new Cancion("Smells Like Teen Spirit", "Nirvana", 1991));
        listaCanciones.add(new Cancion("Wonderwall", "Oasis", 1995));
        listaCanciones.add(new Cancion("Boulevard of Broken Dreams", "Green Day", 2004));
        listaCanciones.add(new Cancion("In the End", "Linkin Park", 2001));
        listaCanciones.add(new Cancion("Under the Bridge", "Red Hot Chili Peppers", 1991));
        listaCanciones.add(new Cancion("November Rain", "Guns N' Roses", 1991));
        listaCanciones.add(new Cancion("Californication", "Red Hot Chili Peppers", 1999));
        listaCanciones.add(new Cancion("One", "Metallica", 1988));
    }

    public void ejecutar() {
        while (true) {
            System.out.println("\n1. Agregar canción");
            System.out.println("2. Mostrar canciones");
            System.out.println("3. Ordenar por año");
            System.out.println("4. Salir");
            System.out.print("Elige una opción: ");

            int opcion = scanner.nextInt();
            scanner.nextLine();

            switch (opcion) {
                case 1:
                    agregarCancion();
                    break;
                case 2:
                    mostrarCanciones();
                    break;
                case 3:
                    ordenarCanciones();
                    break;
                case 4:
                    System.out.println("Saliendo...");
                    return;
                default:
                    System.out.println("Opción inválida, intenta de nuevo.");
            }
        }
    }

    private void agregarCancion() {
        System.out.print("Título: ");
        String titulo = scanner.nextLine();
        System.out.print("Artista: ");
        String artista = scanner.nextLine();
        System.out.print("Año de lanzamiento: ");
        int anio = scanner.nextInt();
        scanner.nextLine();

        listaCanciones.add(new Cancion(titulo, artista, anio));
        System.out.println("Canción añadida.");
    }

    private void mostrarCanciones() {
        if (listaCanciones.isEmpty()) {
            System.out.println("No hay canciones en la lista.");
        } else {
            System.out.println("\nLista de Éxitos del Rock:");
            for (Cancion cancion : listaCanciones) {
                System.out.println(cancion);
            }
        }
    }

    private void ordenarCanciones() {
        Collections.sort(listaCanciones, Comparator.comparingInt(Cancion::getAnio));
        System.out.println("Canciones ordenadas por año: ");
    }

    public static void main(String[] args) {
        new RockHitsApp().ejecutar();
    }
}

Creando Clase Canción:

    import java.util.Objects;

    public class Cancion {
        private String titulo;
        private String artista;
        private int anio;

        public Cancion(String titulo, String artista, int anio) {
            this.titulo = titulo;
            this.artista = artista;
            this.anio = anio;
        }

        public String getTitulo() {
            return titulo;
        }

        public String getArtista() {
            return artista;
        }

        public int getAnio() {
            return anio;
        }

        @Override
        public String toString() {
            return anio + " - " + titulo + " - " + artista;
        }
    }