gpt4 book ai didi

java - 在列表中查找匹配项时出现 NoSuchElementException

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:23:12 24 4
gpt4 key购买 nike

以下老式的简单代码工作正常(遍历字符串列表,并返回 true,因为应该有匹配):

public boolean isMatched() {
List<String> stringList = Arrays.asList("str1", "str2", "str3");
String matchString = "str1";

for (String str : stringList) {
if (StringUtils.equals(str, matchString)) {
return true;
}
}

return false;
}

现在,我想做同样的事情,但改用 Java 8。到目前为止我有这个:

public boolean isMatched() {
List<String> stringList = Arrays.asList("str1", "str2", "str3");
String matchString = "str1";
return (stringList.stream().filter(str -> StringUtils.equals(matchString, str)).findFirst().get() != null);
}

使用第二种方法,我收到以下错误:

java.util.NoSuchElementException: No value present [junit] at java.util.Optional.get(Optional.java:135)

为什么会出现此错误,我应该如何解决?

最佳答案

Optional.get() 在您知道那里有实际值时使用。如果没有值(value),它会抛出 NSEE,如您所见。

看起来您想要 .findFirst().isPresent(),或者如下所述,anyMatch(predicate)

关于java - 在列表中查找匹配项时出现 NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36346409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com