Java 8 Streams - 要列表的嵌套映射

疯狂的沉默
firstlist
  .stream()
  .map( x -> { 
            return secondList
               .stream()
               .map( y -> { //return a string } )
               .collect(Collectors.toList()) // "Output" I need
              }
       )
    .//Get the "Output" here

我有两个清单。第一个列表中的项目必须与第二个列表进行比较,并且必须构建新列表。

样本输入

List 1 : [ { "id" ; 3, "names" : ["test","test2"] }]
List 2 : [ {"name": :"test" , "age" :3}]

输出:

List 3 : [ {"id" : 3, "name" : "test", "age" :3} ]

PS:names应根据第二个列表检查第一个列表中的内容

YCF_L

你需要这样的东西:

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

List<ObjectC> 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<String> 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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

使用Java 8 Streams的Hash Map对象列表迭代

来自分类Dev

Java 8 Streams Peek API

来自分类Dev

Parallelism and Flatmap in Java 8 Streams

来自分类Dev

使用 Java Streams 从嵌套列表创建 TreeMap

来自分类Dev

Java 8 Streams-迭代器根据条件映射和删除

来自分类Dev

Java 8 Streams int和Integer

来自分类Dev

Java 8 Streams:逐字读取文件

来自分类Dev

Java 8 Streams是否与.Net IEnumerable相同?

来自分类Dev

Java 8 Streams:构建多级/复合对象

来自分类Dev

Are Java 8 Streams the same as .Net IEnumerable?

来自分类Dev

Java 8 Streams并尝试使用资源

来自分类Dev

Java 8 Search ArrayList与Streams算法失败

来自分类Dev

Java 8 Streams int和Integer

来自分类Dev

Java 8 Streams中的可变参数

来自分类Dev

Java 8 Streams修改集合值

来自分类Dev

使用Java 8 Streams进行类的学习

来自分类Dev

Java 8 Streams,无法编译的示例

来自分类Dev

在 Java8 Streams 中处理 CompressorException

来自分类Dev

使用Java8 Streams从另外两个列表创建对象列表

来自分类Dev

使用 Java 8 Streams 修改列表中的字符串列表

来自分类Dev

列表流的Java 8映射

来自分类Dev

使用Java 8 Streams API随机播放整数列表

来自分类Dev

Java 8 Streams-从对象列表中收集多个Integer字段

来自分类Dev

是否可以使用Java 8 Streams过滤器访问列表的索引?

来自分类Dev

Java 8 Streams-从对象列表中获取不同的整数作为数组

来自分类Dev

Java8 Streams - 如何将内部映射的键值从“空”字符串修改为空对象

来自分类Dev

如何使用Streams和Java 8按属性将列表中的对象分组为其他列表?

来自分类Dev

Java遍历列表的嵌套映射

来自分类Dev

如何使用Java 8 Streams并行处理列表中的处理元素以将所有元素相加

Related 相关文章

热门标签

归档