ArrayList (Error when entering data in an ArrayList)

0

I'm with the following inconvenient, I have a java application, which consists of loading a certain number of employees, uploading the employees' data, and uploading the sales amount of each one, all based on using an ArrayList, the problem arises when I try to load more than one employee at the time of printing the data that carge shows me, all the data mixed, they told me it was because I did not clean the Arraylist (arraylist.clear ();), but using it erases me all, below I attach the All Classes used in an orderly manner, from now thank you very much for your attention !!!!

Main Class

    package aplicacionempleado;

    import java.util.ArrayList;

     public class AplicacionEmpleado {

public static void main(String[] args) 
{
   System.out.println("Ingrese la Cantidad de Empleados");
   int c=Leer.datoInt();
   ArrayList<Empleado> Listaempleado=new ArrayList<Empleado>();
   ArrayList<Ventas> Listaventa=new ArrayList<Ventas>();



    for(int i=0;i<c;i++)
    {   
        Empleado e=new Empleado();  
        System.out.println("Ingrese el Nombre del Empleado");
        e.setNombre(Leer.readString());
        System.out.println("Ingrese el apellido del empleado");
        e.setApellido(Leer.readString());
        System.out.println("Ingrese el legajo del empleado");
        e.setLeg(Leer.datoInt());


         Ventas v=new Ventas();

              System.out.println("Ingrese la Cantidad de ventas del empleado"+e.getNombre());
              v.setCantVentas(Leer.datoInt());
              System.out.println("Ingrese el monto por comision");
              v.setTarifa(Leer.datoDouble());
              Listaventa.add(v);

               e.setListaVenta(Listaventa);
              Listaempleado.add(e);
    }



    for(int cantem=0;cantem<Listaempleado.size();cantem++) //Usamos este for para pasarle el monto que le corresponde al empleado
    {
        for(int cantto=0;cantto<Listaempleado.get(cantem).getListaVenta().size();cantto++)
        {
       double montoingreso=((Listaempleado.get(cantem).getListaVenta().get(cantem).getCantVentas())*
        (Listaempleado.get(cantem).getListaVenta().get(cantem).getTarifa()));
        Listaempleado.get(cantem).getListaVenta().get(cantem).setMontoIngreso(montoingreso);
    }}


    System.out.println("IMPREcION:");
    for(int n=0;n<Listaempleado.size();n++)
    {

    System.out.println(Listaempleado.get(n).toString());

    }


    }
     }

Employee Class

 package aplicacionempleado;

 import java.util.ArrayList;

 public class Empleado 
{
private String nombre;
private String apellido;
private int leg;
private ArrayList<Ventas>ListaVenta;

public Empleado() {
}

public String getNombre() {
    return nombre;
}

public void setNombre(String nombre) {
    this.nombre = nombre;
}

public String getApellido() {
    return apellido;
}

public void setApellido(String apellido) {
    this.apellido = apellido;
}

public int getLeg() {
    return leg;
}

public void setLeg(int leg) {
    this.leg = leg;
}

public ArrayList<Ventas> getListaVenta() {
    return ListaVenta;
}

public void setListaVenta(ArrayList<Ventas> ListaVenta) {
    this.ListaVenta = ListaVenta;
}

@Override
public String toString() {
    return "Empleado{" + "nombre=" + nombre + ", apellido=" + apellido + ", leg=" + leg + ", ListaVenta=" + ListaVenta + '}';
}


 }

Sales Class

   package aplicacionempleado;

public class Ventas 
  {
 private int CantVentas;
 private double tarifa;
 private double  MontoIngreso;

 public Ventas() {
 }

public int getCantVentas() {
    return CantVentas;
}

public void setCantVentas(int CantVentas) {
    this.CantVentas = CantVentas;
}

public double getTarifa() {
    return tarifa;
}

public void setTarifa(double tarifa) {
    this.tarifa = tarifa;
}

public double getMontoIngreso() {
    return MontoIngreso;
}

public void setMontoIngreso(double MontoIngreso) {
    this.MontoIngreso = MontoIngreso;
}

@Override
public String toString() {
    return "Ventas{" + "CantVentas=" + CantVentas + ", tarifa=" + tarifa + ", MontoIngreso=" + MontoIngreso + '}';
}

 }

Read class (Class that is used to read the data that the user enters)

     package aplicacionempleado;

  import java.io.BufferedReader;
    import java.io.InputStreamReader;
  import java.io.IOException;

  import java.util.StringTokenizer;
 import java.util.NoSuchElementException;

    public class Leer {
     /**
    * Objeto utilizado para parsear la linea introducida por el usuario
    * mediante el teclado.
     * @see #getNextToken(String)
    */
   private static StringTokenizer st;
   /**
  * Objeto de I/O (entrada/salida) utilizado para leer los datos desde el 
   * teclado.
  * @see #getNextToken(String)
  */
private static BufferedReader source;

/**
 * Constructor privado implementado para evitar instanciacion y
 * derivacion.
 */
private Leer() {}

/**
 * Metodo utilizado para leer cadenas de caracteres que no contengan
 * espacios. Los siguientes caracteres son considerados espacios:
 * <ul>
 *     <li><code>' '</code>: espacio en blanco.
 *     <li><code>'\t'</code>: tabulacion (tab).
 *     <li><code>'\n'</code>: nueva linea, equivalente al [Enter] (new-line).
 *     <li><code>'\r'</code>: retorno de carro (carriage-return).
 *     <li><code>'\f'</code>: avance de pagina (form-feed).
 * </ul>
 * @return la primer palabra completa que se haya introducido.
 * @see #readLine()
 */
public static String readString() {
    return getNextToken();
}

/**
 * Metodo utilizado para leer cadenas de caracteres que contengan
 * espacios en blanco y/o tabulaciones.
 * @return la linea introducida hasta que se encuentre un [Enter].
 * @see #readString()
 */
public static String dato() {
    return getNextToken("\r\n\f");
}

/**
 * Metodo utilizado para leer numeros enteros de 32 bits.
 * @return el numero introducido o 0 (cero) si el valor introducido
 * no puede ser interpretado como numero entero. Esto ocurre cuando 
 * se introducen letras o signos de puntuacion mezclados con el 
 * numero.
 * @see #readLong()
 */
public static int datoInt() {
    return (int)datoLong();
}

/**
 * Metodo utilizado para leer numeros enteros de 64 bits.
 * @return el numero introducido o 0L (cero) si el valor introducido
 * no puede ser interpretado como numero entero. Esto ocurre cuando 
 * se introducen letras o signos de puntuacion mezclados con el 
 * numero.
 * @see #readInt()
 */
public static long datoLong() {
    long retVal = 0;
    try {
        retVal = Long.parseLong(getNextToken());
    } catch (NumberFormatException e) {}
    return retVal;
}

/**
 * Metodo utilizado para leer numeros reales de 32 bits de 
 * precision.
 * @return el numero introducido o 0.0F (cero) si el valor introducido
 * no puede ser interpretado como numero entero. Esto ocurre cuando 
 * se introducen letras o signos de puntuacion mezclados con el 
 * numero. Los unicos signos permitidos son el - (menos) al
 * comienzo del numero y una unica aparicion del . 
 * (punto decimal).
 * @see #readDouble()
 */
public static float datoFloat() {
    return (float)datoDouble();
}

/**
 * Metodo utilizado para leer numeros reales de 64 bits de 
 * precision.
 * @return el numero introducido o 0.0 (cero) si el valor introducido
 * no puede ser interpretado como numero entero. Esto ocurre cuando 
 * se introducen letras o signos de puntuacion mezclados con el 
 * numero. Los unicos signos permitidos son el - (menos) al
 * comienzo del numero y una unica aparicion del . 
 * (punto decimal).
 * @see #readFloat()
 */
public static double datoDouble() {
    double retVal = 0.0;
    try {
        retVal = Double.valueOf(getNextToken()).doubleValue();
    } catch (NumberFormatException e) {}
    return retVal;
}

/**
 * Metodo utilizado para leer un caracter.
 * @return el primer caracter de la cadena introducida o '
    package aplicacionempleado;

    import java.util.ArrayList;

     public class AplicacionEmpleado {

public static void main(String[] args) 
{
   System.out.println("Ingrese la Cantidad de Empleados");
   int c=Leer.datoInt();
   ArrayList<Empleado> Listaempleado=new ArrayList<Empleado>();
   ArrayList<Ventas> Listaventa=new ArrayList<Ventas>();



    for(int i=0;i<c;i++)
    {   
        Empleado e=new Empleado();  
        System.out.println("Ingrese el Nombre del Empleado");
        e.setNombre(Leer.readString());
        System.out.println("Ingrese el apellido del empleado");
        e.setApellido(Leer.readString());
        System.out.println("Ingrese el legajo del empleado");
        e.setLeg(Leer.datoInt());


         Ventas v=new Ventas();

              System.out.println("Ingrese la Cantidad de ventas del empleado"+e.getNombre());
              v.setCantVentas(Leer.datoInt());
              System.out.println("Ingrese el monto por comision");
              v.setTarifa(Leer.datoDouble());
              Listaventa.add(v);

               e.setListaVenta(Listaventa);
              Listaempleado.add(e);
    }



    for(int cantem=0;cantem<Listaempleado.size();cantem++) //Usamos este for para pasarle el monto que le corresponde al empleado
    {
        for(int cantto=0;cantto<Listaempleado.get(cantem).getListaVenta().size();cantto++)
        {
       double montoingreso=((Listaempleado.get(cantem).getListaVenta().get(cantem).getCantVentas())*
        (Listaempleado.get(cantem).getListaVenta().get(cantem).getTarifa()));
        Listaempleado.get(cantem).getListaVenta().get(cantem).setMontoIngreso(montoingreso);
    }}


    System.out.println("IMPREcION:");
    for(int n=0;n<Listaempleado.size();n++)
    {

    System.out.println(Listaempleado.get(n).toString());

    }


    }
     }
' (caracter nulo) * si se introdujo una cadena vacia. * @see #readString() */ public static char datoChar() { char car = '
 package aplicacionempleado;

 import java.util.ArrayList;

 public class Empleado 
{
private String nombre;
private String apellido;
private int leg;
private ArrayList<Ventas>ListaVenta;

public Empleado() {
}

public String getNombre() {
    return nombre;
}

public void setNombre(String nombre) {
    this.nombre = nombre;
}

public String getApellido() {
    return apellido;
}

public void setApellido(String apellido) {
    this.apellido = apellido;
}

public int getLeg() {
    return leg;
}

public void setLeg(int leg) {
    this.leg = leg;
}

public ArrayList<Ventas> getListaVenta() {
    return ListaVenta;
}

public void setListaVenta(ArrayList<Ventas> ListaVenta) {
    this.ListaVenta = ListaVenta;
}

@Override
public String toString() {
    return "Empleado{" + "nombre=" + nombre + ", apellido=" + apellido + ", leg=" + leg + ", ListaVenta=" + ListaVenta + '}';
}


 }
'; String str; str = getNextToken("
   package aplicacionempleado;

public class Ventas 
  {
 private int CantVentas;
 private double tarifa;
 private double  MontoIngreso;

 public Ventas() {
 }

public int getCantVentas() {
    return CantVentas;
}

public void setCantVentas(int CantVentas) {
    this.CantVentas = CantVentas;
}

public double getTarifa() {
    return tarifa;
}

public void setTarifa(double tarifa) {
    this.tarifa = tarifa;
}

public double getMontoIngreso() {
    return MontoIngreso;
}

public void setMontoIngreso(double MontoIngreso) {
    this.MontoIngreso = MontoIngreso;
}

@Override
public String toString() {
    return "Ventas{" + "CantVentas=" + CantVentas + ", tarifa=" + tarifa + ", MontoIngreso=" + MontoIngreso + '}';
}

 }
"); if (str.length() > 0) { car = str.charAt(0); st = new StringTokenizer(str.substring(1)); } return car; } /** * Metodo utilizado para obtener la siguiente palabra (o numero) * del objeto parseador de la entrada. * @return siguiente elemento del parseador de cadenas, considerando como * separadores a los caracteres de espacio (ver documentacion de * {@link #readString() readString()}). * @see #getNextToken(String) * @see #st * @see "Documentacion de la clase <code>StringTokenizer</code> en el * sitio oficial de Java: <a href="http://java.sun.com">http://java.sun.com</a>." */ private static String getNextToken() { return getNextToken(null); } /** * Metodo utilizado para obtener el siguiente elemento del objeto * parseador de la entrada. Los elementos estaran definidos por el * delimitador que se recibe como parametro. * @param delim delimitador a utilizar durante el parseo de la entrada. Si * el parametro es <code>null</code> se tomar�n los delimitadores * indicados en {@link #readString() readString()}. * @return siguiente elemento del parseador de cadenas, considerando como * separadores al par&aacute;metro recibido. * @see #getNextToken() * @see #st * @see "Documentaci&oacute;n de la clase <code>StringTokenizer</code> en el * sitio oficial de Java: <a href="http://java.sun.com">http://java.sun.com</a>." */ private static String getNextToken(String delim) { String input; String retVal = ""; try { if ((st == null) || !st.hasMoreElements()) { if (source == null) { source = new BufferedReader(new InputStreamReader(System.in)); } input = source.readLine(); st = new StringTokenizer(input); } if (delim == null) { delim = " \t\n\r\f"; } retVal = st.nextToken(delim); } catch (NoSuchElementException e1) { // si ocurre una excepci�n, no hacer nada } catch (IOException e2) { // si ocurre una excepci�n, no hacer nada } return retVal; } }
    
asked by Joaquin 05.08.2018 в 19:46
source

0 answers