废话不多说,直接上代码
public class Test { public static void main(String[] args) { List<Person> list = new ArrayList<>(); List<Person> list2 = new ArrayList<>(); Person p = new Person(1, "小明", 0); Person p2 = new Person(2, "小红", 0); Person p3 = new Person(3, "老王", 0); list.add(p); list.add(p2); list.add(p3); Person p4 = new Person(1, null, 10); Person p5 = new Person(2, null, 20); Person p6 = new Person(3, null, 30); list2.add(p4); list2.add(p5); list2.add(p6); list.stream().flatMap(x -> list2.stream().filter( y -> x.getId() == y.getId() && x.getAge() == 0 && y.getName() == null) .map(y -> new Person(x.getId(),x.getName(),y.getAge())) ).collect(Collectors.toList()).forEach(m->System.out.println(m)); } }