Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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 仅当for each循环不';找不到匹配的?_Java_For Loop_Foreach - Fatal编程技术网

Java 仅当for each循环不';找不到匹配的?

Java 仅当for each循环不';找不到匹配的?,java,for-loop,foreach,Java,For Loop,Foreach,如果在objectList中找不到匹配项,那么可以使用此代码更改哪些内容,从而运行某些代码 for (Object o : objectList) { if (o.someValue()).equals(o2.someValue())) { // Do stuff } } 可能是因为现在是凌晨4点,但我觉得这应该是一个简单的问题,我无法理解。只需使用布尔标记来跟踪是否找到匹配项,类似这样的: boolean match = false; for (Object o : o

如果在objectList中找不到匹配项,那么可以使用此代码更改哪些内容,从而运行某些代码

for (Object o : objectList) {
 if (o.someValue()).equals(o2.someValue())) {
        // Do stuff
  }
}

可能是因为现在是凌晨4点,但我觉得这应该是一个简单的问题,我无法理解。

只需使用
布尔标记来跟踪是否找到匹配项,类似这样的:

boolean match = false;
for (Object o : objectList) {
    if (o.someValue()).equals(o2.someValue())) {
        match true;
        break;       // no point in iterating further
    }
}

if (!match) {
    System.out.println("No match was found in the list.");
}
如果您使用的是Java 8,那么您可以在streams中使用一行程序:

boolean match = objectList.stream()
        .anyMatch(t -> t.someValue().equals(o2.someValue()));

只需使用
布尔
标志跟踪是否找到匹配项,如下所示:

boolean match = false;
for (Object o : objectList) {
    if (o.someValue()).equals(o2.someValue())) {
        match true;
        break;       // no point in iterating further
    }
}

if (!match) {
    System.out.println("No match was found in the list.");
}
如果您使用的是Java 8,那么您可以在streams中使用一行程序:

boolean match = objectList.stream()
        .anyMatch(t -> t.someValue().equals(o2.someValue()));
使用简单的布尔标志

使用简单的布尔标志


您可以使用streams支持,例如

Object match = objectList.stream().filter(o -> o.someValue()).equals(o2.someValue())).orElse(null);
if (match == null) {
    // No matches...
}
List<String> objectList = new ArrayList<String>(5);
objectList.add("A");
objectList.add("B");
objectList.add("C");
objectList.add("D");
objectList.add("A");
objectList.add("E");
objectList.add("F");
objectList.add("A");
objectList.add("G");
objectList.add("H");
objectList.add("I");
objectList.add("J");
objectList.add("A");
objectList.add("K");
objectList.add("A");
objectList.add("M");

if (objectList.stream().anyMatch(o -> o.equals("A"))) {
    objectList.stream().filter(o -> o.equals("A")).forEach(o -> System.out.println(o));
} else {
    // No matches
}

起初我想到了类似这样的东西(甚至使用anyMatch),但似乎OP希望为每个匹配做一些事情(//do stuff)

好的,您可以使用
anyMatch
来“查看”流中是否有“任何”匹配项,并根据它做出决定,例如

Object match = objectList.stream().filter(o -> o.someValue()).equals(o2.someValue())).orElse(null);
if (match == null) {
    // No matches...
}
List<String> objectList = new ArrayList<String>(5);
objectList.add("A");
objectList.add("B");
objectList.add("C");
objectList.add("D");
objectList.add("A");
objectList.add("E");
objectList.add("F");
objectList.add("A");
objectList.add("G");
objectList.add("H");
objectList.add("I");
objectList.add("J");
objectList.add("A");
objectList.add("K");
objectList.add("A");
objectList.add("M");

if (objectList.stream().anyMatch(o -> o.equals("A"))) {
    objectList.stream().filter(o -> o.equals("A")).forEach(o -> System.out.println(o));
} else {
    // No matches
}
List objectList=newarraylist(5);
对象列表。添加(“A”);
对象列表。添加(“B”);
对象列表。添加(“C”);
对象列表。添加(“D”);
对象列表。添加(“A”);
对象列表。添加(“E”);
对象列表。添加(“F”);
对象列表。添加(“A”);
对象列表。添加(“G”);
对象列表。添加(“H”);
对象列表。添加(“I”);
对象列表。添加(“J”);
对象列表。添加(“A”);
对象列表。添加(“K”);
对象列表。添加(“A”);
对象列表。添加(“M”);
if(objectList.stream().anyMatch(o->o.equals(“A”)){
objectList.stream().filter(o->o.equals(“A”).forEach(o->System.out.println(o));
}否则{
//没有火柴
}

您可以利用streams支持,例如

Object match = objectList.stream().filter(o -> o.someValue()).equals(o2.someValue())).orElse(null);
if (match == null) {
    // No matches...
}
List<String> objectList = new ArrayList<String>(5);
objectList.add("A");
objectList.add("B");
objectList.add("C");
objectList.add("D");
objectList.add("A");
objectList.add("E");
objectList.add("F");
objectList.add("A");
objectList.add("G");
objectList.add("H");
objectList.add("I");
objectList.add("J");
objectList.add("A");
objectList.add("K");
objectList.add("A");
objectList.add("M");

if (objectList.stream().anyMatch(o -> o.equals("A"))) {
    objectList.stream().filter(o -> o.equals("A")).forEach(o -> System.out.println(o));
} else {
    // No matches
}

起初我想到了类似这样的东西(甚至使用anyMatch),但似乎OP希望为每个匹配做一些事情(//do stuff)

好的,您可以使用
anyMatch
来“查看”流中是否有“任何”匹配项,并根据它做出决定,例如

Object match = objectList.stream().filter(o -> o.someValue()).equals(o2.someValue())).orElse(null);
if (match == null) {
    // No matches...
}
List<String> objectList = new ArrayList<String>(5);
objectList.add("A");
objectList.add("B");
objectList.add("C");
objectList.add("D");
objectList.add("A");
objectList.add("E");
objectList.add("F");
objectList.add("A");
objectList.add("G");
objectList.add("H");
objectList.add("I");
objectList.add("J");
objectList.add("A");
objectList.add("K");
objectList.add("A");
objectList.add("M");

if (objectList.stream().anyMatch(o -> o.equals("A"))) {
    objectList.stream().filter(o -> o.equals("A")).forEach(o -> System.out.println(o));
} else {
    // No matches
}
List objectList=newarraylist(5);
对象列表。添加(“A”);
对象列表。添加(“B”);
对象列表。添加(“C”);
对象列表。添加(“D”);
对象列表。添加(“A”);
对象列表。添加(“E”);
对象列表。添加(“F”);
对象列表。添加(“A”);
对象列表。添加(“G”);
对象列表。添加(“H”);
对象列表。添加(“I”);
对象列表。添加(“J”);
对象列表。添加(“A”);
对象列表。添加(“K”);
对象列表。添加(“A”);
对象列表。添加(“M”);
if(objectList.stream().anyMatch(o->o.equals(“A”)){
objectList.stream().filter(o->o.equals(“A”).forEach(o->System.out.println(o));
}否则{
//没有火柴
}

有一个布尔标志,它是
true
(表示已找到)或
false
(表示未找到),并在循环后检查它的开始。您还可以使用streams清除布尔标志,该标志为
true
(对于已找到)或
false
(对于未找到),并在循环后检查其开始。你也可以使用stream我最初想到过这样的东西(或者甚至使用
anyMatch
),但是OP似乎想为每个匹配做点什么(
//do stuff
)当然,然后继续在流中迭代最初我想到了类似的东西(或者甚至使用
anyMatch
),但是OP似乎想为每一场比赛做点什么(
//do stuff
)当然,然后继续浏览这篇文章。谢谢你的快速回复。这篇文章非常有效,我从你的其他建议中学到了一些新东西。谢谢你的快速回复。这篇文章非常有效,我从你的其他建议中学到了一些新东西。