热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java8流-嵌套映射到列表

如何解决《Java8流-嵌套映射到列表》经验,为你挑选了1个好方法。

您需要这样的东西:

List firstlist = new ArrayList<>();
firstlist.add(new ObjectA(3, Arrays.asList("test", "test2")));
List secOndList= new ArrayList<>();
secondList.add(new ObjectB("test", 3));

List result = firstlist.stream()
        .flatMap(a -> secondList.stream()
                .filter(b -> a.getNames().contains(b.getName()))
                .map(c -> new ObjectC(a.getId(), c.getName(), c.getAge()))
        ).collect(Collectors.toList());

如果我理解您的问题,您将有三个不同的对象,如下所示:

@Getter @Setter @AllArgsConstructor @NoArgsConstructor
public class ObjectA {
    private int id;
    private List names;
}

@Getter @Setter @AllArgsConstructor @NoArgsConstructor
public class ObjectB {
    private String name;
    private int age;
}

//And the result Object you want to get
@Getter @Setter @AllArgsConstructor @NoArgsConstructor @ToString
public class ObjectC {
    private int id;
    private String name;
    private int age;
}

此示例的输出是:

[ObjectC(id=3, name=test, age=3)]

对于注释,我正在使用Lombok



1> YCF_L..:

您需要这样的东西:

List firstlist = new ArrayList<>();
firstlist.add(new ObjectA(3, Arrays.asList("test", "test2")));
List secOndList= new ArrayList<>();
secondList.add(new ObjectB("test", 3));

List result = firstlist.stream()
        .flatMap(a -> secondList.stream()
                .filter(b -> a.getNames().contains(b.getName()))
                .map(c -> new ObjectC(a.getId(), c.getName(), c.getAge()))
        ).collect(Collectors.toList());

如果我理解您的问题,您将有三个不同的对象,如下所示:

@Getter @Setter @AllArgsConstructor @NoArgsConstructor
public class ObjectA {
    private int id;
    private List names;
}

@Getter @Setter @AllArgsConstructor @NoArgsConstructor
public class ObjectB {
    private String name;
    private int age;
}

//And the result Object you want to get
@Getter @Setter @AllArgsConstructor @NoArgsConstructor @ToString
public class ObjectC {
    private int id;
    private String name;
    private int age;
}

此示例的输出是:

[ObjectC(id=3, name=test, age=3)]

对于注释,我正在使用Lombok


推荐阅读
author-avatar
摩羯法国反弹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有