有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

集合Java 8:在列表中映射列表

我的A1类有以下两个属性:

private String hour;
private List<A2> list;

A2类:

private String code;
private List<A3> list;

我想用java 8找到一种更漂亮的方法来编写:

Set<MyObject> set = new HashSet<MyObject>();
for (A1 pes : a1.getList()) {
    for (A2 pe : a2.getList()) {
       MyObject bppc = new MyObject (a2.getCode(), a1.getHour());
       set.add(bppc);
    }
}

你有什么线索吗
谢谢


共 (1) 个答案

  1. # 1 楼答案

    我发现你的版本已经很可读了,所以我不认为我会用流重写它。但是,这里有一个使用streams的解决方案:

    a1.getList()
      .stream()
      .flatMap(pes -> 
             a2.getList()
               .stream()
               .map(pe -> new MyObject(a2.getCode(), a1.getHour())))
      .collect(Collectors.toSet());