Traverse a través de objetos vinculados.
Tengo este objeto, en el que cada Regla almacena una lista de Reglas:
public class Rule {
private String name;
private String condition;
private List<String> result;
private List<Rule> rules;
private Map<String, List<String>> aliases = Maps.newHashMap();
private boolean last = false;
}
¿Cuál es la manera más inteligente y eficiente para recorrer todos los objetos vinculados, e insertar todos los campos “results” en una lista, independientemente del objeto al que pertenezcan? Eventualmente, me gustaría tener una lista:
List<String> resultados que contenga todos los resultados de todos los objetos.
He estado intentando durante horas y apreciaría su ayuda. Obtener una lista de todos los objetos en sí mismos también me ayudará, como aplanar el árbol.
davy.ai
La manera más inteligente y eficiente de recorrer todos los objetos vinculados e insertar todos los campos “results” en una lista sería utilizar una función recursiva para iterar a través de cada objeto Rule y sus reglas anidadas. Aquí hay un ejemplo de cómo se puede hacer esto:
Esta función toma una lista de objetos Regla y de forma recursiva pasa por cada objeto Regla y sus reglas anidadas para recuperar todos los campos “results” y agregarlos a una lista.
Si también quiere aplanar el árbol y obtener una lista de todos los objetos en sí mismos, puede modificar la función para que devuelva una lista de todos los objetos Rule:
Esta función también toma una lista de objetos Regla y de forma recursiva pasa por cada objeto Regla y sus reglas anidadas para recuperar todos los objetos Regla y agregarlos a una lista.