Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

ayuda en java!

tiocallin

Becerro
Desde
18 Dic 2008
Mensajes
28
Alguien podria ayudarme con el siguiente ejercicio ....por favor....
Es una lista :
List<Persona> myArray = new ArrayList<Persona>();
Persona persona = new Persona();
persona.setNombre("Juan");
persona.setImporte(10);
persona.setCostos(1202);
Persona persona2 = new Persona();
persona2.setNombre("Pedro");
persona2.setImporte(20);
persona2.setCostos(1205);

myArray.add(persona);
myArray.add(persona);
myArray.add(persona2);
myArray.add(persona2);

y lo q necesito es crear una nueva lista pero sin datos repetidos y sumados los importes......

es decir quedaria de la siguiente forma:
1.-juan 20
2.-perdo 40

De antemano muchas gracias!!
Saludos!!
 
Describe tu lógica de cómo se supone estás haciendo las inserciones de datos, los cálculos y la obtención de los resultados.

El código que publicas no nos sirve de mucho. Además de que al agregar a las personas, estás intentando hacerlo en dos ocasiones con cada una de ellas y no veo dónde verificas que ese dato no esté ya en la lista.
 
Este es mi codigo para agrupar....

Describe tu lógica de cómo se supone estás haciendo las inserciones de datos, los cálculos y la obtención de los resultados.

El código que publicas no nos sirve de mucho. Además de que al agregar a las personas, estás intentando hacerlo en dos ocasiones con cada una de ellas y no veo dónde verificas que ese dato no esté ya en la lista.

for(int i=0; i<myArray.size();i++)
{ pers =(Persona)myArray.get(i);
if(myArray.size()>(i+1))
{ pers2 =(Persona)myArray.get(i+1);
if(pers.getNombre().equals(pers2.getNombre()))
{ igual=true;
if(cont>0)
{importe=importe+pers2.getImporte();}
else
{importe=importe+pers.getImporte()+pers2.getImporte();}
cont++;
System.out.println("contador:"+cont);
System.out.println("Importe:"+importe);
System.out.println("valor de i:"+i);
if(myArray.size()-2==i)
{
System.out.println("Guardar aqui!!");
pers.setImporte(importe);
}
}else
{
System.out.println("guardando---:"+cont);
System.out.println("Importe-----:"+importe);
System.out.println("Nombre------:"+pers.getNombre());
if (igual==true){pers.setImporte(importe);filtrados.add(pers);importe=0;cont=0;igual=false;}
else{filtrados.add(pers);importe=0;cont=0;igual=false;}
}
}
else
{
System.out.println("valor de i:"+i);
System.out.println("guardando.........:"+cont);
System.out.println("Importe...........:"+importe);
System.out.println("Nombre............:"+pers.getNombre());
filtrados.add(pers);
}
}
 
Volver
Arriba