Java 8 corriente min () y AnyMatch () (o algo así) en una línea

Hienz:

Tengo una lista de objetos con la siguiente estructura:

public class ExampleObject {

    private boolean someBoolean;
    private int someInteger;
    // getters, setters, constructor...
}

Necesito un método, que devolverá el número entero -1 si cualquiera de los objetos tiene el conjunto de campo someBoolean a verdadero, si no devuelve el mínimo de someInteger.

Podría hacerlo con un simple bucle for, hay una manera de hacerlo con una sola corriente? Mi problema era que tanto AnyMatch y min () está terminando la corriente.

Eran :

Si someIntegerno es negativo, se puede asignar a cada instancia o bien -1 o someIntegeren base al valor de la booleanpropiedad, y encontrar el mínimo:

OptionalInt min = list.mapToInt (o -> o.getSomeBoolean () ? -1 : o.getSomeInteger())
                      .min();

Si someIntegerpuede ser negativo, puede asignar los casos para los que la booleanpropiedad es truea Integer.MIN_VALUE, y cambiar la salida a -1si es igual a Integer.MIN_VALUE.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=229995&siteId=1
Recomendado
Clasificación