gpt4 book ai didi

java - 使用 isPresent 方法在 Java8 中列出过滤器

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:04:39 24 4
gpt4 key购买 nike

我有一个包含一些字符串值的列表。我想迭代列表与另一个字符串进行比较。只有当另一个字符串与列表中的任何元素都不匹配时,我才应该进入循环。我尝试了类似下面的方法,但没有用。在 Java 8 中执行相同操作的任何其他替代方法?

注意:在循环中,我向同一个列表添加了更多元素。因此,为避免 ConcurrentModificationException,我使用 if 条件进行验证。

List<String> mylist = new ArrayList<>();
mylist.add("test");
mylist.add("test1");

if(mylist.stream()
.filter(str -> !(str.equalsIgnoreCase("test")))
.findFirst()
.isPresent()) {
System.out.println("Value is not Present");
}

最佳答案

您应该为此使用 Stream#noneMatch。它将使您的代码更具可读性和简洁性。另外,尽量避免在 if 语句中放入太多逻辑,在可读变量中提取最大值

List<String> mylist = new ArrayList<>();
mylist.add("test");
mylist.add("test1");

Predicate<String> equalsIgnoreCasePredicate = str -> str.equalsIgnoreCase("test");
boolean noneMatchString = mylist.stream().noneMatch(equalsIgnoreCasePredicate);

if (noneMatchString) {
System.out.println("Value is not Present");
}

关于java - 使用 isPresent 方法在 Java8 中列出过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55312815/

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