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

ArrayList JAVA

Estas en el tema de ArrayList JAVA en el foro de Java en Foros del Web. Hola amigos, espero me puedan ayudar. Resulta que tengo este codigo. ArrayList uno = new ArrayList(); ArrayList dos = new ArrayList(); uno.add("1"); uno.add("2"); uno.add("3"); dos.add(0, ...
  #1 (permalink)  
Antiguo 22/10/2008, 12:59
Avatar de brygom  
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años, 1 mes
Puntos: 0
ArrayList JAVA

Hola amigos, espero me puedan ayudar.
Resulta que tengo este codigo.

ArrayList uno = new ArrayList();
ArrayList dos = new ArrayList();

uno.add("1");
uno.add("2");
uno.add("3");
dos.add(0, uno);

uno.clear();//limpiar ArrayList

uno.add("4");
uno.add("5");
uno.add("6");
dos.add(1, uno);



for(int c=0; c<dos.size();c++){
JOptionPane.showMessageDialog(null, dos.get(c));
}


Porque cuando recorro el ArrayList, me muestra dos veces los ultimos numeros agregados es decir 4,5, 6 y de nuevo 4, 5, 6, cuando lo que yo quiero es que me muestre 1,2,3 y luego 4,5,6.

Espero su ayuda, desde ya muchas gracias.
  #2 (permalink)  
Antiguo 23/10/2008, 00:43
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: ArrayList JAVA

Estas guardando dos veces una referencia a la misma lista, por lo que te salen dos veces los valores que contiene esa lista.

Con dos.add(x,uno) no añades los elementos a la lista, añades una referencia a la lista. Para eso tendrias que usar dos.addAll(x,uno);

Eso se averigua mirando el API .

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 23/10/2008, 18:42
Avatar de brygom  
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: ArrayList JAVA

Gracias por la ayuda! tienes razón.
Saludos!
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 10:32.