Encontrar un número impar de int array [] Uso de Alimentación

user10824969:

He creado una matriz y tratando de corrientes de uso para encontrar el primer número impar de la siguiente manera:

int[] arr = new int[]{2, 4, 6, 8, 9, 12};
int oddOne = Stream.of(arr).filter(i -> i % 2 != 0).findFirst().get();
                                   // fails above

Error: | incompatible types: int[] cannot be converted to int

¿Qué estoy haciendo mal? ¿Cómo puedo solucionar esto?

GBlodgett:

Es necesario utilizar Arrays.stream():

Arrays.stream(arr).filter(i -> i % 2 != 0).findFirst().getAsInt();

Cuales:

Devuelve una secuencia IntStreamcon la matriz especificada como su fuente.

A partir de ahora se utiliza el método sobrecargado Stream.of(T t)cual simplemente:

Devuelve una secuencia Streamque contiene un solo elemento.

Por lo que sólo será una Streamde la solaint[]


Además, como señaló NullPointer, llamando get()sin garantizar de hecho hay un número impar en el Arraycausará un error. Lo mejor es utilizar orElse()para devolver un valor por defecto si no hay un número impar está presente

Supongo que te gusta

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