Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/04/2011, 03:13
Avatar de leocente
leocente
 
Fecha de Ingreso: diciembre-2009
Mensajes: 62
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: arraylist de arraylist

Yo te voy a explicar porque cuando bajas el "primero.clear()" te retorna vacio

Bien, es simple, porque "primero" es un Objeto y lo que vos haces cuando escribis devuelve.add(primero) el nuevo elemento del "devuelve" es una REFERENCIA del objeto "primero", no se si me explico.
Es decir, supongamos que

Objeto primero= "ab"

vos haces devuelve.add(primero) , claro esta que devuelve seria entonces devuelve= [[ab]]

pero ese ab de devuelve es ua REFERENCIA de el objeto "primero", es decir que hagas lo que hagas con el objeto "primero" se va a modificar el elto ab de devuelve y en todas las partes que hayas referenciado al obejto primero.
A no ser que crees otro objeto aparte de esos dos que tenes y hagas una copia exacta del objeto primero, y esa copia es lo que vas a agregar al devuelve, no vas a agregar "primero".

Por eso cuando pones primero.clear() al al final y dentro del while se vacian todos los elementos de "primero" por ende tambien se van a vaciar los elemenos de "devuelve".

No se si me explique bien, Si en tu primero codigo, abajo y afuera del while escribis primero.add("a"); y imprimis System.out.println(devuelve.toString()); vas a saber de lo que hablo.


Saludos que andes bien!