How to store a list of movies?

1

How would you do to list all the stored movies? Let him create a new variable of the movie class every time.

package videoclub;

import java.util.Scanner;

public class VideoClub {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        while (true) {
            menuprin();
        }
    }

    private static void menuprin() {
        System.out.println("Bienvenido:\r\n" + "1.Ingresar Película\r\n" + "2.Listar Películas\r\n" + "0.Salir");
        int opcion = scannerint();
        switch (opcion) {
            case 0:
                System.exit(0);
                break;
            case 1:
                Pelicula nueva = null;
               nueva= menuingresar();
                break;
            case 2:

                break;
        }
    }

    private static int scannerint() {
        Scanner sc = new Scanner(System.in);
        return sc.nextInt();
    }

    private static String scannerString() {
        Scanner sc = new Scanner(System.in);
        return sc.nextLine();
    }

    private static Pelicula menuingresar() {
        Pelicula nueva = new Pelicula();
        String titulo, director, anho;
        System.out.println("Ingrese el titulo:");
        titulo = scannerString();
        ((Pelicula) nueva).setTitulo(titulo);
        System.out.println("Ingrese el director:");
        director = scannerString();
        ((Pelicula) nueva).setDirector(director);
        System.out.println("Ingrese el año:");
        anho = scannerString();
        ((Pelicula) nueva).setAnho(anho);
        String[] datos = {titulo, director, anho};
        ((Pelicula) nueva).setDatos(datos);
        return nueva;
    }

}

Movie.java

package videoclub;

public class Pelicula {

    private String titulo;
    private String director;
    private String anho;
    String[] datos = {titulo, director, anho};

    public Pelicula(String[] datos) {

    }

    Pelicula() {

    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }

    public String getAnho() {
        return anho;
    }

    public void setAnho(String anho) {
        this.anho = anho;
    }

    public String[] getDatos() {
        return datos;
    }

    public void setDatos(String[] datos) {
        this.datos = datos;
    }
}
    
asked by IagoPM 01.12.2018 в 21:39
source

1 answer

0

In the clase VideoClub , you can create a list List<Pelicula> and go storing the movies as you go. For example:

public class VideoClub {
    private List<Pelicula> peliculas = new ArrayList<>();

    // ... otros metodos

    // si hacemos este metodo no estatico, podemos agregar peliculas a la lista
    private void menuprin() {
    System.out.println("Bienvenido:\r\n" + "1.Ingresar Película\r\n" + "2.Listar Películas\r\n" + "0.Salir");
    int opcion = scannerint();
    switch (opcion) {
        case 0:
            System.exit(0);
            break;
        case 1:
            Pelicula nueva = menuingresar();
            peliculas.add(nueva); // vas agregando las peliculas segun las vas entrando
            break;
        case 2:

            break;
        }
    }
}

public static void main(String[] args) {
    // como menuprin ya no es estatico, tenemos que crear una instancia de VideoClub
    VideoClub vc = new VideoClub();
    while (true) {
        vc.menuprin();
        vc.imprimirPeliculas();
    }
}

To print the movies you have so far, you can add another method to VideoClub for example:

public void imprimirPeliculas() {
    this.peliculas.forEach(System.out::println);
}

Now, the method imprimirPeliculas assumes that the class Pelicula , makes override to the method toString() . Then we must override the method toString in Pelicula :

public class Pelicula {
    // resto del contenido de la clase

    @Override
    public String toString() {
        return "Titulo: " + this.titulo + ", Director: " + this.director + ", Anho: " + this.anho;
    }
}

One suggestion, you can simplify the menuingresar() method in the following way:

private static Pelicula menuingresar() {
    Pelicula nueva = new Pelicula();
    String titulo, director, anho;
    System.out.println("Ingrese el titulo:");
    titulo = scannerString();
    nueva.setTitulo(titulo);
    System.out.println("Ingrese el director:");
    director = scannerString();
    nueva.setDirector(director);
    System.out.println("Ingrese el año:");
    anho = scannerString();
    nueva.setAnho(anho);
    String[] datos = {titulo, director, anho};
    nueva.setDatos(datos);
    return nueva;
}
    
answered by 01.12.2018 / 23:20
source