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循环。
那么,使用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.
现在你有了从孩子那里获得价值观的基本途径。了解一些流
并改进代码示例;)
我有这样一堂课: 在主要我已经创建了一个包含所有主题的列表。 现在我想打印所有参加课程的学生的所有科目名称。 我试过这样的方法,但它给了我错误: 参数类型字符串void的运算符未定义 我不知道如何使第二个流返回每个学生的和的字符串。我可以将它映射到字符串,然后以某种方式收集它吗?第一个流中的类似内容?
我有“MainClass”类的对象列表,它包含“Question”类的对象列表,它包含Option类的对象列表。如何按“Id”对“MainClass”类列表进行排序,以及按“Id”对“Option”类列表进行排序? 假设,
假设我们有一个三维的物体列表。 假设我想过滤“l5”,这样如果最里面的列表中的任何元素是奇数,那么整个列表都应该被删除,如果这使得第二级列表为空,那么作为回报应该被删除。 因此,对于给定的示例,在过滤之前,如果: 过滤后,它应该是: 如何使用Java中的流来实现这一点?
问题内容: 您有任何想法如何从对象中检索全部吗?我需要将 for循环 更改为 流 “同类”代码。 非常感谢任何帮助 问题答案: 您可以与涉及的串联和三元运算符混合使用,例如:
我正在做一个有趣的小问题,是一个朋友寄给我的。这个问题要求我使用文本文件中的常用词填充数组,然后打印此列表中包含用户提供的某些字符的所有词。我能够填充我的数组没有问题,但是代码中实际比较两个列表的部分似乎不起作用。下面是我编写的用于比较这两个列表的函数。 代码运行得很好,我没有得到任何错误输出,但是一旦用户输入了他们的字母列表,就什么也没有发生。为了测试,我尝试了一些与我知道的单词列表中的单词相匹