当前位置: 首页 > 知识库问答 >
问题:

如何使用java流打印嵌套列表,其中对象包含对其自身的引用列表

何涵衍
2023-03-14
public class Obj {
  private List<Obj> objs;
  private String objId;

  public List<Obj> getObjs() {
    return objs;
  }

  public String getobjId() {
    return objId;
  }

  @Override
  public String toString() {
    return "Obj [objs=" + objs + ", objId=" + objId + "]";
  }

}

编辑

Obj可以包含一个Obj列表,它的子级可以包含一个Obj对象列表。如果深度是5级,是否可以打印所有的objId值,从最顶部的obj值到第5级的子级值。我想避免嵌套for循环。

共有1个答案

壤驷志学
2023-03-14

那么,使用stream可以从这里开始:

objs.stream().
            map(Obj::getObjId).
            forEachOrdered(System.out::println);

一点点改进:

    List<String> collect = objs.stream()
            .filter(Objects::nonNull) // Filter only nonNull objects. Avoid NullPointerException
            .map(Obj::getObjId)
            .peek(System.out::println) // Print the ObjId value from Obj
            .collect(Collectors.toList()); // Return the result to a List, if you need.

现在你有了从孩子那里获得价值观的基本途径。了解一些并改进代码示例;)

    null
 类似资料:
  • 我有这样一堂课: 在主要我已经创建了一个包含所有主题的列表。 现在我想打印所有参加课程的学生的所有科目名称。 我试过这样的方法,但它给了我错误: 参数类型字符串void的运算符未定义 我不知道如何使第二个流返回每个学生的和的字符串。我可以将它映射到字符串,然后以某种方式收集它吗?第一个流中的类似内容?

  • 我有“MainClass”类的对象列表,它包含“Question”类的对象列表,它包含Option类的对象列表。如何按“Id”对“MainClass”类列表进行排序,以及按“Id”对“Option”类列表进行排序? 假设,

  • 假设我们有一个三维的物体列表。 假设我想过滤“l5”,这样如果最里面的列表中的任何元素是奇数,那么整个列表都应该被删除,如果这使得第二级列表为空,那么作为回报应该被删除。 因此,对于给定的示例,在过滤之前,如果: 过滤后,它应该是: 如何使用Java中的流来实现这一点?

  • 问题内容: 您有任何想法如何从对象中检索全部吗?我需要将 for循环 更改为 流 “同类”代码。 非常感谢任何帮助 问题答案: 您可以与涉及的串联和三元运算符混合使用,例如:

  • 我正在做一个有趣的小问题,是一个朋友寄给我的。这个问题要求我使用文本文件中的常用词填充数组,然后打印此列表中包含用户提供的某些字符的所有词。我能够填充我的数组没有问题,但是代码中实际比较两个列表的部分似乎不起作用。下面是我编写的用于比较这两个列表的函数。 代码运行得很好,我没有得到任何错误输出,但是一旦用户输入了他们的字母列表,就什么也没有发生。为了测试,我尝试了一些与我知道的单词列表中的单词相匹