Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果使用java 8的列表中的列表中存在值,如何返回布尔值_Java_Java Stream - Fatal编程技术网

如果使用java 8的列表中的列表中存在值,如何返回布尔值

如果使用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{ 私

我有一个对象列表,其中包含一个字符串列表。如果“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{
私人名单名称;
}
课堂测试{
私有列表对象;
公共布尔值isPresent(字符串名称){
//循环浏览列表列表
}
}
这里我想确定“names”是否不为null,并且对于任何“objs”对象,其大小是否大于1。有没有一种方法可以在Java8中使用Streams实现这一点?

你的要求有点不清楚。您的需求可以理解为

  • 如果任何名称数组大于1,则返回true,或
  • 如果所有名称数组都大于1,则返回true
请记住,objs列表中的每个节点都有一个名称数组

代码
如果您想在名称列表中的任何节点大于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 );
 }