Nis*_*man 16 java-8 java-stream
我试图将List所有书中的所有书Collection都放在另一本书中.我的问题是我需要根据书籍ID进行比较,所以我不能只测试第一个书中是否包含第一本书,我必须确定第二个集合中的任何书籍是否与第一本书.
我有以下代码来比较两个书籍集合并过滤第一个集合:
Run Code Online (Sandbox Code Playgroud)List<Book> parentBooks = listOfBooks1.stream().filter(book-> !listOfBooks2.contains(book)).collect(Collectors.toList());
代码无法正常工作,因为我正在比较对象本身.我需要比较基于bookId的对象而不是整个书对象.我应该如何更改代码,以便它可以根据bookId(book.getId())进行比较?
Ser*_*tin 35
List<Book> books1 = ...;
List<Book> books2 = ...;
Set<Integer> ids = books2.stream()
.map(Book::getId)
.collect(Collectors.toSet());
List<Book> parentBooks = books1.stream()
.filter(book -> !ids.contains(book.getId()))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28908 次 |
| 最近记录: |