【发布时间】:2018-12-16 17:58:19
【问题描述】:
java 8 中两个列表对象的交集。有人能告诉我我做错了什么吗?
List<Student> originalStudent = new ArrayList<>();
List<Student> newStudent = new ArrayList<>();
List<Student> intersectListStudent = new LinkedList<>()
originalStudent.add(new Student("William", "Tyndale",1));
originalStudent.add(new Student("Jonathan", "Edwards",2));
originalStudent.add(new Student("Martin", "Luther"),3);
newStudent.add(new Student("Jonathan", "Edwards",2));
newStudent.add(new Student("James", "Tyndale",4));
newStudent.add(new Student("Roger", "Moore",5));
originalStudent.forEach(n ->
newStudent.stream()
.filter(db -> !n.getName().equals(db.getName()) &&
!n.getLastName().equals(db.getLastName()))
.forEach(student-> intersectListStudent .add(student)));
【问题讨论】:
-
您期望的输出是什么?你认为什么是错的?顺便说一句,这不是自我解释
-
由于一个
List可以多次包含同一个元素,所以当你交叉列表时,如果A有元素x三次,B有元素x两次,多少次你期待最终名单中的答案吗? 3? 2? 1?这将确定这些方法中的哪一种有效。
标签: java arraylist java-8 java-stream intersect