为了账号安全,请及时绑定邮箱和手机立即绑定

java8 stream的flatMap如何返回一个新的类?

java8 stream的flatMap如何返回一个新的类?

摇曳的蔷薇 2019-02-17 20:15:20
有一个List<String> fileNames,存放的是附件的名字集合。 要把这个fileNames,转成Enclosure类的List,通过stream操作。 public class Enclosure { private int enclosureId; private String path; private Timestamp uploadTime; private String path; private String name; } 我现在的代码 List<Enclosure> list = fileNames.stream().flatMap(i -> { Enclosure enclosure = new Enclosure(); enclosure.setUploadTime(new Timestamp(System.currentTimeMillis())); enclosure.setName(i); enclosure.setPath("testurl"+ i); return enclosure; }).collect(Collectors.toList()); 有语法错误,不知道应该如何写。求教。
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

将flatMap换成map即可

        List<String> fileNames = new ArrayList<>();
        fileNames.add("aaa");
        fileNames.add("bbb");
        fileNames.add("ccc");
        List<Enclosure> list = fileNames.stream().map(i ->
        {
            Enclosure enclosure = new Enclosure();
            enclosure.setName(i);
//            enclosure.setUploadTime(new Timestamp(System.currentTimeMillis()));参数错误
            enclosure.setPath("testurl" + i);
            return enclosure;
        }).collect(Collectors.toList());
        for (Enclosure enclosure : list)
        {
            System.out.println(enclosure.getName());
        }
查看完整回答
反对 回复 2019-03-01
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

map函数是用来生成新类的。flatMap和map类似,不同的是其每个元素转换得到的是Stream对象,会把子Stream中的元素压缩到父集合中。

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 582 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号