Optimizar para encontrar objetos con el valor de campo más alto en una lista de arrays.
He creado una función que devuelve una lista de arrays con las personas que tienen el campo “number” más alto. Pero estoy bastante seguro/a de que esto se puede optimizar.
public ArrayList<membre> findOlder(){
ArrayList<membre> olderPersonnes = new ArrayList<membre>();
int higher = 0;
for (Membre membre : membresDeLaFamille) {
if (membre.getNumber() > higher) {
higher = membre.getNumber();
}
}
for (Membre membre: membresDeLaFamille) {
if (membre.getNumber() == higher) {
olderPersonnes.add(membre);
}
}
return olderPersonnes;
}
davy.ai
El código proporcionado itera dos veces sobre el arreglo
membresDeLaFamille
para determinar el valor más alto denumber
y luego agregar todas las personas con ese valor a un arregloolderPersonnes
. Esto se puede optimizar iterando el arreglo solo una vez y añadiendo a la lista de personas la que tenga el valor más alto, limpiándola si hay nuevos candidatos con un valor más alto.Este enfoque considera que podría haber múltiples personas con el valor más alto de
number
y las agrega a la lista solo una vez. Al iterar solo una vez, se mejora el rendimiento general de la función.