使用java8改进对象列表到其他对象的转换

使用java8改进对象列表到其他对象的转换,java,lambda,java-8,stream,Java,Lambda,Java 8,Stream,我使用的是下面的方法,当列表有大约1000个元素时,这需要很多时间(大约10分钟)。如果列表有1个元素,则需要100毫秒。有什么方法可以提高性能吗 List<Book> books = Optional.ofNullable(library.getOnlineBooks).map( onlineBooks-> onlineBooks.stream() .filter(Objects:

我使用的是下面的方法,当列表有大约1000个元素时,这需要很多时间(大约10分钟)。如果列表有1个元素,则需要100毫秒。有什么方法可以提高性能吗

List<Book> books = Optional.ofNullable(library.getOnlineBooks).map(
                    onlineBooks-> onlineBooks.stream()
                            .filter(Objects::nonNull)
                            .map(onlineBook->
                                    searchCopys.search(onlineBook.getTitle())
                                            .map(copys-> BookCreator.create(onlineBook, copys)
                                            ).block())
                            .collect(Collectors.toList()))
                    .orElse(Collections.emptyList())

 Mono<Book> BookCreator create(OnlineBook onlineBook, Copys copys){
 }

 Mono<Copys> SearchCopys search(String title){
 }
List books=Optional.ofNullable(library.getOnlineBooks.map)(
onlineBooks->onlineBooks.stream()
.filter(对象::非空)
.map(在线图书->
searchCopys.search(onlineBook.getTitle())
.map(copys->BookCreator.create(onlineBook,copys)
).block())
.collect(收集器.toList())
.orElse(Collections.emptyList())
Mono BookCreator创建(OnlineBook OnlineBook,Copys Copys){
}
Mono SearchCopys搜索(字符串标题){
}

谢谢

您没有提供足够的代码供我们自己测试,所以我们只能猜测是否有改进。@JacobG。您好,我相信性能低下的原因是因为map中的方法返回Mono,对于每本书,我都会阻塞。但是我没有找到任何解决方法。您是否尝试过
onlineBooks.parallelStream()
?您似乎在这里遇到了性能问题
searchCopys.search(onlineBook.getTitle())
您对配置文件/加速此部分有任何更改吗?您是否尝试过优化方法
Mono searchCopys search(字符串标题)
?它到底做什么?