Cómo comparar dos IntStreams sin recoger o cheque si todos elemnts de una corriente están presentes en una otra corriente?

Trillian:

Sea X una corriente dada con ciertos números:

IntStream x = IntStream.of(1,2,3,4,5);

y ya corriente a ensayar

IntStream y = IntStream.of(5,5,4,3,3,3,3,1,2,2,1,5,3); //result should be true
IntStream y = IntStream.of(5,5,4,3,3,3,3,1,2,2,7,8,9); //result should be false

¿Cómo puedo comprobar que y sólo se compone de los números x?

y.distinct().allMatch(i->???)

??? Estoy atascado aquí con lo que se supone para insertar en este punto para hacer el registro de entrada.

también:

Difiero a la respuesta ya existente basado en la pregunta indicada. Si se va a comprobar si todos los elementos de streamYson que a partir de una ya existente streamX, se puede realizar una allMatchy no findAny como:

private boolean intStreamContainsAnother(IntStream streamOfX, IntStream streamOfY) {
    Set<Integer> setOfX = streamOfX.boxed().collect(Collectors.toSet());
    return streamOfY.allMatch(setOfX::contains);
}

A pesar de los requisitos de la pregunta, así que para llevar a cabo sin recoger , no sería posible por la razón de que el flujo podría ser operado solamente una vez .

private boolean intStreamContainsAnother(IntStream streamOfX, IntStream streamOfY) {
    return streamOfY.allMatch(ys -> streamOfX.anyMatch(xs -> xs == ys));
}

Supongo que te gusta

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