如果使用java 8的列表中的列表中存在值,如何返回布尔值
我有一个对象列表,其中包含一个字符串列表。如果“names”列表不为null且大小大于1,我希望返回true 考虑下面的代码如果使用java 8的列表中的列表中存在值,如何返回布尔值,java,java-stream,Java,Java Stream,我有一个对象列表,其中包含一个字符串列表。如果“names”列表不为null且大小大于1,我希望返回true 考虑下面的代码 class Obj { private List<String> names; } class Test { private List<Obj> objs; public boolean isPresent(String name) { //Loop through the list of lists } } 类Obj{ 私
class Obj {
private List<String> names;
}
class Test {
private List<Obj> objs;
public boolean isPresent(String name) {
//Loop through the list of lists
}
}
类Obj{
私人名单名称;
}
课堂测试{
私有列表对象;
公共布尔值isPresent(字符串名称){
//循环浏览列表列表
}
}
这里我想确定“names”是否不为null,并且对于任何“objs”对象,其大小是否大于1。有没有一种方法可以在Java8中使用Streams实现这一点?
你的要求有点不清楚。您的需求可以理解为
- 如果任何名称数组大于1,则返回true,或
- 如果所有名称数组都大于1,则返回true
如果您想在名称列表中的任何节点大于1时返回true,那么您可以使用
布尔java.util.stream.stream.anyMatch(谓词),您的问题似乎不需要使用name
参数。您能澄清一下吗?请注意,像您这样的请求可以归结为“请帮我做作业"不受欢迎。有很多关于streams的好教程,所以请先尝试一下自己。我们会帮助您解决一些具体问题,但其他人帮您做这些初始工作是没有意义的。您通过编程学习编程。我向大家道歉。我结束了以前的问题,并在这里对其进行了一些修改。我将删除这个问题,谢谢你的建议。我无法删除这个问题,但我已经将其标记为版主干预。我为这个混乱道歉。这对我来说是不道德的。
public boolean isPresent() {
return objs.stream().anyMatch( o -> o.getNames().size() > 1 );
}
public boolean isPresent() {
return objs.stream().allMatch( o -> o.getNames().size() > 1 );
}