package com.ant.jdk8.chap03; import java.util.Arrays; import java.util.List; import java.util.function.Predicate; public class PredicateCompositeDemo { public static void main(String[] args) { List<Apple> apples = Arrays.asList( new Apple("green",200,"China"), new Apple("green",130,"Japan"), new Apple("red",150,"America"), new Apple("brown",170,"Thailand")); Predicate<Apple> redPredicate = apple->"red".equals(apple.getColor()); Predicate<Apple> notRedAndHeavyPredicate = redPredicate.negate().and(a->a.getWeight()>150); apples.stream().filter(notRedAndHeavyPredicate). forEach(a-> System.out.println(a.getColor()+"->"+a.getCountry()+"->"+a.getWeight())); } }