Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 25/04/12, 17:29:07
Array

[xs_avatar]
Capitan Kirk Capitan Kirk no está en línea
Usuario novato en la web
 
Fecha de registro: mar 2012
Mensajes: 28
Modelo de smartphone: samsung galaxy sii
Tu operador: Movistar
Llenando ArrayList

Tengo un ArrayList y cago los datos así:

Amigo amigo1 = new Amigo();
amigo1.setTitulo("carlos");
Listin.add(amigo1);
amigo1.setTitulo("pepe");
Listin.add(amigo1);
amigo1.setTitulo("adolfo");
Listin.add(amigo1);


El caso es que al ver la lista yo esperaba ver:
carlos
pepe
adolfo

y no, en lugar de eso veo:
adolfo
adolfo
adolfo

¿porque? ¿como tendría que hacerlo para que salga bien ?
Responder Con Cita


  #2  
Viejo 25/04/12, 18:59:32
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
El ArrayList almacena las referencias, así que realmente has almacenado 3 referencias a amigo1 y por eso si haces un cambio en amigo1 también cambiará en el ArrayList.

El código correcto sería el siguiente:

Amigo amigo1 = new Amigo();
amigo1.setTitulo("carlos");
Listin.add(amigo1);
amigo1 = new Amigo();
amigo1.setTitulo("pepe");
Listin.add(amigo1);
amigo1 = new Amigo();
amigo1.setTitulo("adolfo");
Listin.add(amigo1);

En Java todo (a excepción de los enteros, decimales, floats, booleanos y poco más, creo que también los string, pero de esto no estoy muy seguro) son referencias, así que un cambio en el objeto de origen supondrá un cambio en todos los objetos que lo referencien.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 23:56:37 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /