Java流:flatMap返回对象流 [英] Java streams: flatMap returns Stream of Objects

查看:86
本文介绍了Java流:flatMap返回对象流的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有此代码:

List<Application> applications = this.applicationDao.findAll();
Collection<Pair<Application, FileObject>> files = applications.stream()
    .flatMap(app -> streamOfFiles.map(file -> Pair.of(app, file)));

其中 streamOfFiles Stream< FileObject>

当前,我收到以下编译消息:

Currently, I'm getting this compilation message:

类型不匹配:无法从 Stream< Object> 转换为 Collection< Pair< Application,FileObject>>

有什么想法吗?

推荐答案

您似乎在这里缺少 collect :

Collection<Pair<Application, FileObject>> files = applications.stream()
        .flatMap(app -> files.stream().map(file -> Pair.of(app, file)))
        .collect(Collectors.toList()); // any collection you want

编辑 :由于 streamOfFiles 在单个 flatMap 操作中已被消耗,因此您应该优先使用一个< collection> .stream()代替,在那里为每个 app 应用重新创建流.

Edit: Since, streamOfFiles is getting consumed at a single flatMap operation, you should prefer to use a <collection>.stream() instead there to create the stream afresh for each app.

这篇关于Java流:flatMap返回对象流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆