Java - Cambiar valor de atributo desde una lista que esta en main

 
Vista:
sin imagen de perfil
Val: 63
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Cambiar valor de atributo desde una lista que esta en main

Publicado por smn (21 intervenciones) el 13/09/2020 06:02:59
Hola muy buenas a todos.
bueno les comento tengo una lista en main y esa lista tiene objetos de otras clases, los objetos fueron creados en el main y añadidos a la lista desde main, ahora el problema que tengo es que quiero acceder a un atributo de un objeto que esta en la lista todo esto lo quiero hacer con un for por que necesito cambiar el atributo de todos los objetos que tengo en la lista.

1
2
3
4
5
RadioReloj radioReloj = new RadioReloj("Azul", 1.0, true, reloj); // objeto añadido a la lista * 3
 
for(int i=0; i<lista.size(); i ++){
    lista.get(i)[0] = "Verde";
}

no eh podido encontrar la solución
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 63
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Cambiar valor de atributo desde una lista que esta en main

Publicado por smn (21 intervenciones) el 13/09/2020 07:26:45
me respondo a mi mismo la respuesta era mas facil de lo que pensaba.

1
2
3
4
for(int i=0; i<lista.size(); i ++){
    lista.get(i).setColor("Verde");
 
}

de esta forma accedí al atributo azul y lo cambie a verde aun no entiendo muy bien por que, se supone que con
1
lista.get(i)
accedo al primer elemento no al primer atributo pero luego entiendo como la arraylist la cree de esta forma
1
ArrayList<RadioReloj> lista = new ArrayList<>();
me permite acceder a los getters y setters de la clase RadioReloj.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.977
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cambiar valor de atributo desde una lista que esta en main

Publicado por Rodrigo (529 intervenciones) el 13/09/2020 08:54:21
Tu lista tiene 0 o mas objetos de tipo RadioReloj

cuando haces
1
lista.get(i)

obtienes el RadioReloj i-esimo de la lista.

Al tener un RadioReloj, puedes llamar los metodos de la clase RadioReloj, como lo hiciste (por ejemplo setColor()).

Si solo usas el indice para obtener el elemento i-esimo y para nada mas, puedes cambiar el ciclo por uno simplificado asi:

1
2
3
for(RadioReloj radioReloj: lista) {
    radioReloj.setColor("Verde");
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Rodrigo
Val: 1.977
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cambiar valor de atributo desde una lista que esta en main

Publicado por Rodrigo (529 intervenciones) el 13/09/2020 16:00:28
Recorde que tienes una alternativa adicioinal si es que estas usando ArrayList: lambdas.

Aqui ni siquiera requieres establecer el tipo de la variable que usas, pues el compilador la deduce:

1
lista.forEach( r -> r.setColor(23) );

Resumen (hasta ahora, despues vuelvo si me acuerdo de otra manera :) )

El loop original, usando un indice para acceder a cada elemento:
1
2
3
for(int i=0; i<lista.size(); i ++){
    lista.get(i).setColor("Verde");
}

Loop simplificado, no requiere indice, pero requiere definir una variable (indicando el tipo) para cada vuelta del loop
1
2
3
for(RadioReloj radioReloj: lista) {
    radioReloj.setColor("Verde");
}

Loop usando lambdas, no requiere el tipo de la variable:

1
lista.forEach( r -> r.setColor("Verde") );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 63
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Cambiar valor de atributo desde una lista que esta en main

Publicado por smn (21 intervenciones) el 13/09/2020 19:24:50
que interesante siempre pongo en practica lo que aprendo en este foro gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar