如何创建书籍的ArrayList来过滤掉maxPages值以上的书籍?

时间:2018-12-05 04:39:36

标签: java arraylist

我在理解arrays / arrayList时遇到了麻烦,因此,非常感谢您的帮助!

问题: 系统会为您提供一本暑假可以阅读的书籍清单,但您需要精简书籍清单,以便将所有书籍都读完。

将“图书列表”作为参数,从sub array中删除页面超过readingList的所有图书,然后返回结果列表。

您可以通过调用book.getNumPages()来访问Book的页数。提供Book类供参考。

这是我所拥有的:

maxPages

1 个答案:

答案 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());
}