Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Unificar dos ArrayList en uno

Estas en el tema de Unificar dos ArrayList en uno en el foro de Java en Foros del Web. Hola tengo una duda de como se pueden unificar 2 ArrayList. Yo tengo estos 2 ArrayList previamente cagados de una BD. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: ...
  #1 (permalink)  
Antiguo 26/02/2014, 13:36
 
Fecha de Ingreso: diciembre-2012
Mensajes: 17
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta Unificar dos ArrayList en uno

Hola tengo una duda de como se pueden unificar 2 ArrayList. Yo tengo estos 2 ArrayList previamente cagados de una BD.
Código Java:
Ver original
  1. ArrayList<InfoCastles> arraycastle1=new ArrayList<>();
  2. ArrayList<InfoCastles> arraycastle2=new ArrayList<>();

y los quiero unificar en..
Código Java:
Ver original
  1. ArrayList<InfoCastles> listaInfoCastillo =new ArrayList<>();

Como yo tengo es..

Código Java:
Ver original
  1. listaInfoCastillo = new ArrayList<>(arraycastle1);
  2.             listaInfoCastillo.addAll(arraycastle2);

Pero lo que pasa es que cuando le paso para ver el contenido me queda:

Código Java:
Ver original
  1. InfoCastles{id=7, taxPercent=7, siegeDate=1393786800000, clanName=null, allyName=null}
  2. InfoCastles{id=6, taxPercent=6, siegeDate=1393786800000, clanName=null, allyName=null}
  3. InfoCastles{id=5, taxPercent=15, siegeDate=1393714800000, clanName=null, allyName=null}
  4. InfoCastles{id=4, taxPercent=14, siegeDate=1393786800000, clanName=null, allyName=null}
  5. InfoCastles{id=3, taxPercent=13, siegeDate=1393786800000, clanName=null, allyName=null}
  6. InfoCastles{id=2, taxPercent=12, siegeDate=1393714800000, clanName=null, allyName=null}
  7. InfoCastles{id=1, taxPercent=11, siegeDate=1393714800000, clanName=null, allyName=null}
  8. InfoCastles{id=0, taxPercent=0, siegeDate=null, clanName=Bagleyx, allyName=Qwerty}
  9. InfoCastles{id=0, taxPercent=0, siegeDate=null, clanName=Trankinas, allyName=null}
  10. InfoCastles{id=0, taxPercent=0, siegeDate=null, clanName=MACHETE, allyName=Qwerty}
  11. InfoCastles{id=0, taxPercent=0, siegeDate=null, clanName=NiopeX, allyName=Cubros}
  12. InfoCastles{id=0, taxPercent=0, siegeDate=null, clanName=GODES, allyName=Cubros}
  13. InfoCastles{id=0, taxPercent=0, siegeDate=null, clanName=chuchichis, allyName=Qwerty}
  14. InfoCastles{id=0, taxPercent=0, siegeDate=null, clanName=QWERTYSTAFF, allyName=Cubros}

No se si entienden lo que quiero, que no aparesca el null que queden unidos pero ya no se de que forma hacerlo

Espero sus respuestas

Saludos!!
  #2 (permalink)  
Antiguo 26/02/2014, 14:15
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Unificar dos ArrayList en uno

Partes de un concepto erróneo.

Tú no quieres unir listas, tú quieres "completar" los elementos (objetos) de una lista con los de otra. Lógicamente ningún método de List te va a servir ¿cómo va a saber qué tiene que copiar de una clase que tú has creado?

Tienes que crearte tu propio método.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 26/02/2014, 22:30
 
Fecha de Ingreso: diciembre-2012
Mensajes: 17
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Unificar dos ArrayList en uno

Tenias razon lo interprete mal, estube un tiempoo intentando en unir las listas y eso no era lo que tenia que hacer. Habia visto varios ejemplos pero eran de numeros o cadenas pero no de objetos. Asi que lo repense como completarlo y me quedo asi:
Código Java:
Ver original
  1. static ArrayList<InfoCastles> combinador(Iterator<ClanData> clan, Iterator<Castle> cast) {
  2.         ArrayList<InfoCastles> listaCombinada = new ArrayList<>();
  3.         while (cast.hasNext()) {
  4.             ClanData cl = clan.next();
  5.             Castle cas = cast.next();
  6.             InfoCastles inf = new InfoCastles();
  7.             inf.setId(cas.getId());
  8.             inf.setTaxPercent(cas.getTaxPercent());
  9.             inf.setSiegeDate(cas.getSiegeDate());
  10.             inf.setClanName(cl.getClanName());
  11.             inf.setAllyName(cl.getAllyName());
  12.             listaCombinada.add(inf);
  13.         }
  14.         return listaCombinada;
  15.     }

No se si esta del todo bien pero da resultado al menos, ya me tira bien:
Código Java:
Ver original
  1. InfoCastles{id=7, taxPercent=7, siegeDate=1393786800000, clanName=Bagleyx, allyName=Qwerty}
  2. InfoCastles{id=6, taxPercent=6, siegeDate=1393786800000, clanName=Trankinas, allyName=null}
  3. InfoCastles{id=5, taxPercent=15, siegeDate=1393714800000, clanName=MACHETE, allyName=Qwerty}
  4. InfoCastles{id=4, taxPercent=14, siegeDate=1393786800000, clanName=NiopeX, allyName=Cubros}
  5. InfoCastles{id=3, taxPercent=13, siegeDate=1393786800000, clanName=GODES, allyName=Cubros}
  6. InfoCastles{id=2, taxPercent=12, siegeDate=1393714800000, clanName=chuchichis, allyName=Qwerty}
  7. InfoCastles{id=1, taxPercent=11, siegeDate=1393714800000, clanName=QWERTYSTAFF, allyName=Cubros}

Gracias por la orientacion, a veses uno no sabe como hacer y se va por las ramas capas.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:43.