有没有一个Java等同于Javascript的“一些”方法?
2022-09-02 09:03:50
我有一个集合,我想知道是否至少有一个元素满足某些条件。从本质上讲,有些人在JavaScript中所做的,我想在集合上做!
我有一个集合,我想知道是否至少有一个元素满足某些条件。从本质上讲,有些人在JavaScript中所做的,我想在集合上做!
从 Java 8 开始,您可以将集合转换为流并使用 anyMatch,如以下示例所示。
import java.util.Arrays;
import java.util.List;
public class SomeExample {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, -6, 7);
boolean hasNegative = list.stream().anyMatch(x -> x < 0);
if (hasNegative) {
System.out.println("List contains some negative number");
}
else {
System.out.println("List does not contain any negative number");
}
}
}
查看 Guava 的 Iterables
类及其 any()
实现。
或多或少与另一个答案中的Commons Collections示例相同,但通用化:
List<String> strings = Arrays.asList("ohai", "wat", "fuuuu", "kthxbai");
boolean well = Iterables.any(strings, new Predicate<String>() {
@Override public boolean apply(@Nullable String s) {
return s.equalsIgnoreCase("fuuuu");
}
});
System.out.printf("Do any match? %s%n", well ? "Yep" : "Nope");