Ваше первоначальное решение искало числа в наборе a
, которые отличаются хотя бы от одного числа в наборе b
.
В случае 1 он отличается от 7 и, таким образом, соответствует.
В данном случае вы, вероятно, искали noneMatch
вместо:
a.stream().filter(first -> (b.stream().noneMatch(first::equals)))
.forEach(System.out::println);
(Конечно, в этом случае проще использовать contains
.)