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

Modificar un objeto del ArrayList

Estas en el tema de Modificar un objeto del ArrayList en el foro de Java en Foros del Web. Hola, tengo un problemilla con los arraylist, a ver si alguien me puede ayudar, El caso es que recojo datos de un producto de la ...
  #1 (permalink)  
Antiguo 28/04/2010, 16:19
 
Fecha de Ingreso: abril-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
Modificar un objeto del ArrayList

Hola, tengo un problemilla con los arraylist, a ver si alguien me puede ayudar,
El caso es que recojo datos de un producto de la base de datos a un arraylist, los datos que se guardan por producto son: identificador, modelo, precio y unidades.
Lo que no puedo lograr es añadir unidades al campo unidades del arraylist ya que lo que quiero modificar el objeto.

hasta donde se, para modificar un objeto se utiliza set:
arrayb.set(i, objeto);

pero esto solo sirve para modificar todo el objeto, para reemplazarlo, no para modificar un campo del objeto.

Para que se vea mas claro, el arraylist podria tener:

1 Camiseta 12 100
2 Palestino 8 50
3 Pulsera 2 100
....

Lo que quiero es que al pulsar un boton el arraylist tenga:

1 Camiseta 12 70
2 Palestino 8 50
3 Pulsera 2 100
....


Gracias
  #2 (permalink)  
Antiguo 29/04/2010, 01:00
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Modificar un objeto del ArrayList

Lo que tienes es que tener los get y los set correspondientes para los atributos de cada objeto de la clase que quieras modificar, así, si tu arraylist se llamase complementosModa formada por objetos de la clase Complemento, la pulsera fuese el tercer elemento y quisieses modificarle el precio, solo tendrías que hacer algo así como:

complementosModa[2].setPrecio(tuNuevoPrecio);

Pero para eso la clase Complemento(nombre,cantidad,precio) deberia tener los correspondientes métodos getNombre, setNombre, getCantidad, setCantidad, getPrecio y setPrecio.
  #3 (permalink)  
Antiguo 29/04/2010, 06:35
 
Fecha de Ingreso: abril-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
Respuesta: Modificar un objeto del ArrayList

Cita:
Iniciado por Fuzzylog Ver Mensaje
Lo que tienes es que tener los get y los set correspondientes para los atributos de cada objeto de la clase que quieras modificar, así, si tu arraylist se llamase complementosModa formada por objetos de la clase Complemento, la pulsera fuese el tercer elemento y quisieses modificarle el precio, solo tendrías que hacer algo así como:

complementosModa[2].setPrecio(tuNuevoPrecio);

Pero para eso la clase Complemento(nombre,cantidad,precio) deberia tener los correspondientes métodos getNombre, setNombre, getCantidad, setCantidad, getPrecio y setPrecio.

Hola y gracias por contestar Fuzzylog, la verdad es que tengo getters y setters en la clase. El que necesito es:

Código:
public void setUnidades(int uni){
		unidades = uni;
	}
y en la llamada tengo:
Código:
uni = arrayb.get(indiceb).getUnidades() - unidad;
arrayb.get(indiceb).setUnidades(uni);
Lo tengo asi, le hago un print a uni y me lo resta, pero no me guarda el cambio en el array. Sera que tengo mal el set??
  #4 (permalink)  
Antiguo 29/04/2010, 07:18
 
Fecha de Ingreso: abril-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
Respuesta: Modificar un objeto del ArrayList

Hola de nuevo, lo he conseguido haciendo un set del objeto nuevo, es decir, le paso el antiguo producto a la clase y las unidades a restar, en donde esta el set, creo un nuevo producto con los datos del antiguo con la unica digerencia que en las unidades le resto las que le paso. Asi consigo un nuevo producto actualizado, y le envio este nuevo. Asi en el programa original le hago un set al array y le paso el nuevo producto (el objeto entero).

No se si se puede hacer de otra forma mas limpi y es una trampilla, pero sirve, asique si alguien tiene el mismo problema...que lo aproveche!

Saludos
  #5 (permalink)  
Antiguo 29/04/2010, 08:01
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Modificar un objeto del ArrayList

public void setUnidades(int uni){
this.unidades = uni;
}

-> This busca el objeto desde el que has llamado al método setUnidades.
  #6 (permalink)  
Antiguo 29/04/2010, 09:37
 
Fecha de Ingreso: abril-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
Respuesta: Modificar un objeto del ArrayList

Cita:
Iniciado por Fuzzylog Ver Mensaje
public void setUnidades(int uni){
this.unidades = uni;
}

-> This busca el objeto desde el que has llamado al método setUnidades.
Anda, pues no sabia que el this servia para eso...pensaba que era para referenciar a la clase, sin otro significado.
Bueno, muchas gracias

Etiquetas: arraylist, modificar, objeto
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 17:12.