Dudita sencilla Java, ArrayList

LLoid

Holas, tengo una duda simplona:

Si yo tengo un ArrayList de, por ejemplo, nodos, y hago un get para modificarle algo tal que así:

ArrayList<Nodo> lista = new ArrayList<>();

//Rellenamos el arraylist

lista.get(3).setAlgunAtributo(5);

¿Hay alguna manera de hacer que ese cambio que he hecho a lista.get(3) se guarde en el arraylist directamente sin tener que usar set()?

Tig

Ya se está modificando. Con el get accedes a memoria, y con el set modificas el objeto en memoria. ¿Has probado a imprimir el valor?

System.out.println(lista.get(3).getAltura()); //imprime 8

lista.get(3).setAtura(5);

System.out.println(lista.get(3).getAltura()); //imprime 5

Piensa en un arraylist como una colección de punteros a memoria, no como en una colección de objetos

1 1 respuesta
LLoid

#2 Llevas razón, estaba pasando nodos a otro arraylist y al final me he hecho la picha un lío xD

Gracias por responder.

Usuarios habituales

  • LLoid
  • Tig