Pasar datos de dos arraylist a otro arraylist

Enrique Arias
16 de Junio del 2012


Hola amigos, tengo dos arraylist, cada uno con datos, necesito que en otro arraylist contenga la información de ambos, como

puedo hacer??

Este es el primero, datos de productos:

1 Atún Gloria Verdura
2 Arroz GloriavVerdura
5 Cerveza Gloria Verdura
3 Cerveza Cristal Bebida
4 Gaseosa Gloria Verdura


Este es el segundo, datos de lotes:

1 14/06/2012 12/09/2014 10 Caja 20 latas 200
1 14/06/2012 12/09/2014 10 Caja 20 latas 200
1 14/06/2012 12/09/2014 10 Caja 20 latas 200
6 14/06/2012 21/11/2013 12 Six Pack 8 botellas 96
6 14/06/2012 21/11/2013 12 Six Pack 8 botellas 96

Y deberia quedar asi, para mostrarlo en un datagrid:

1 Atún Gloria Verdura 1 14/06/2012 12/09/2014 10 Caja 20 latas 200
2 Arroz GloriavVerdura 1 14/06/2012 12/09/2014 10 Caja 20 latas 200
5 Cerveza Gloria Verdura 1 14/06/2012 12/09/2014 10 Caja 20 latas 200
3 Cerveza Cristal Bebida 6 14/06/2012 21/11/2013 12 Six Pack 8 botellas 9
4 Gaseosa Gloria Verdura 6 14/06/2012 21/11/2013 12 Six Pack 8 botellas 9

Pablo
12 de Agosto del 2026

Hola,

Si simplemente quieres que el tercer ArrayList contenga todos los elementos de los otros dos, sin combinarlos por ningún criterio especial, con addAll() te vale:

ArrayList<String> combinado = new ArrayList<>();
combinado.addAll(listaProductos);
combinado.addAll(listaVerduras);

combinado queda con todos los elementos de listaProductos primero, y después todos los de listaVerduras, en el mismo orden en que estaban en cada lista original.

Si en cambio necesitas relacionar elementos de una lista con elementos de la otra (por ejemplo, que cada producto de la primera lista incorpore el dato correspondiente de la segunda, no solo ponerlos uno detrás del otro), entonces addAll() no te sirve, ahí hace falta recorrer ambas listas con un índice común o algún campo que las relacione:

ArrayList<String> combinado = new ArrayList<>();
for (int i = 0; i < listaProductos.size(); i++) {
    combinado.add(listaProductos.get(i) + " - " + listaVerduras.get(i));
}

Por tu ejemplo con datos tabulados (id, nombre, categoría) parece que cada lista contiene objetos completos, no solo un valor suelto, así que probablemente lo que quieres es simplemente addAll() para juntarlas en una única lista con todos los productos de ambas fuentes. Si tu caso es el segundo (relacionar posición a posición), avisa y te lo detallo más.

Pablo