Seleccione a la persona con la puntuación más baja utilizando Java Stream.
Tengo el json anterior:
[
{
"name": "Jonh",
"scores": [{"score": 6 }, {"score": 4}]
},
{
"name": "David",
"scores": [{"score": 3}, { "score": 8}]
}
]
Mi clase:
public class Person{
private String name;
private Collection<score> scores;
// getters/setters
}
public class Score{
private Integer score;
// getters/setters
}
Si solo hubiera una persona, usaría el código a continuación para obtener la puntuación más baja:
Score s = list.stream()
.min(Comparator.comparingInt(Score::getScore))
.get();
Pero para obtener a la persona con la puntuación más baja usando stream, no tuve éxito.
Necesito seleccionar a la persona que tenga la puntuación más baja usando Java 8 y stream.
¿Cuál es la solución más adecuada?
davy.ai
Para obtener la persona con la puntuación más baja usando Java 8 y stream, puedes utilizar el código a continuación:
Este código primero encuentra la persona con la puntuación más baja, comparando la puntuación mínima de cada una de las puntuaciones de la persona. Utiliza el método
min()
para encontrar la puntuación mínima, y el métodoorElse()
para manejar los casos en los que la persona no tiene puntuaciones. Una vez que encuentra a la persona con la puntuación más baja, devuelve esa persona como resultado.Ten en cuenta que esto asume que cada persona tiene al menos una puntuación. Si esto no está garantizado, es posible que necesites añadir algunas comprobaciones adicionales de errores.