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 streamY
son que a partir de una ya existente streamX
, se puede realizar una allMatch
y
no
como:findAny
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));
}