Voy a utilizar un iterador para recorrer una colección de objetos en Java. Sin embargo, estoy un poco confundido sobre el uso de un Iterador (acostumbrado a usar para cada ciclo). digamos que tengo un código como este:Al iterar sobre colecciones de objetos Java, ¿cómo puedo mutar el objeto actual?
Iterator<Organization> orgIter = orgs.iterator();
while (orgIter.hasNext()) {
Organization orgObj = orgIter.next();
orgObj.setChildOrgsTree(generateOrgChildTree(orgObj, new ArrayList<Organization>()));
}
Creo un objeto nuevo y luego cambio los campos dentro del objeto. Mi plan era establecer el objeto original que formé en el iteroter igual a una lista de este objeto que creo (la lista no se muestra arriba, pero descubrí que la necesitaría).
Pero sería mucho más fácil si no tuviera que crear un nuevo objeto para hacer todo esto. ¿Hay alguna forma de que pueda obtener el objeto actual y mutar eso?
Su redacción es confusa .... su código es funcionalmente idéntica a la respuesta aceptada. En ambos casos, los únicos objetos que se crean son los ArrayLists, y esos serían distintos para cada instancia de organización. ¡Este es el camino a seguir! –
Estoy confundido, estoy creando un objeto Organización y configurándolo igual a la próxima iteración. Supongo que como esa es una variable de referencia, sigo mutando el mismo objeto de memoria física ... – SoftwareSavant
Hay una diferencia entre declarar una variable y crear un objeto. –