我在理解arrays / arrayList时遇到了麻烦,因此,非常感谢您的帮助!
问题: 系统会为您提供一本暑假可以阅读的书籍清单,但您需要精简书籍清单,以便将所有书籍都读完。
将“图书列表”作为参数,从sub array
中删除页面超过readingList
的所有图书,然后返回结果列表。
您可以通过调用book.getNumPages()来访问Book的页数。提供Book类供参考。
这是我所拥有的:
maxPages
答案 0 :(得分:1)
您需要通过更改
从代码清单中获得该书book.getNumPages()
到
readingList.get(i).getNumPages()
您可以通过以下更简洁的方式进行操作:
public List<Book> filterBooks(List<Book> readingList, int maxPages) {
return IntStream.range(0, readingList.size())
.filter(i -> readingList.get(i).getNumPages() <= maxPages)
.mapToObj(readingList::get)
.collect(Collectors.toList());
}
或简单地
public List<Book> filterBooks(List<Book> readingList, int maxPages) {
return readingList.stream()
.filter(i -> i.getNumPages() <= maxPages)
.collect(Collectors.toList());
}