In order to negate an existing predicate, the Predicate.not() static method added to Java 11. The Predicate class is present in java.util.function package.
你可以使用 // invert a Predicate, will be even shorter with static import collection.stream() .filter(Predicate.not(MyObject::isEmpty)) .collect(Collectors.toList());
使用Predicate 來產生偶數、奇數集合的範例 List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // creating a predicate for negation Predicate<Integer> even = i -> i % 2 == 0;
// creating a predicate object which // is negation os supplied predicate Predicate<Integer> odd = Predicate.not(even);
// filtering the even number using even predicate List<Integer> evenNumbers = list.stream().filter(even).collect( Collectors.toList());
// filtering the odd number using odd predicate List<Integer> oddNumbers = list.stream().filter(odd).collect( Collectors.toList());