【发布时间】:2016-07-06 14:18:20
【问题描述】:
我正在尝试在一个 Collection 中创建一个 List 中不存在于另一个中的所有书籍。我的问题是我需要根据书的ID进行比较,所以我不能只测试第一个中的书是否包含在第二个中,我必须确定第二个集合中的任何书是否具有相同的ID首先是一本书。
我有以下代码来比较两个书籍集合并过滤第一个集合:
List<Book> parentBooks = listOfBooks1.stream().filter(book-> !listOfBooks2.contains(book)).collect(Collectors.toList());
代码无法正常工作,因为我正在比较对象本身。我需要根据 bookId 而不是整个 book 对象来比较对象。我应该如何更改代码以便它可以根据 bookId (book.getId()) 进行比较?
【问题讨论】:
标签: java-8 java-stream