📜  Java中的句点 negated() 方法和示例(1)

📅  最后修改于: 2023-12-03 15:02:01.110000             🧑  作者: Mango

Java中的句点 negated() 方法和示例

在Java中,我们可以使用Stream API来操作数据集合,比如filter()方法可以根据指定的条件筛选出集合中的元素。而negated()方法则可以将条件取反,实现过滤出不符合条件的元素。

negated()方法的定义

negated()方法是Predicate接口中的一个默认方法,用于将当前Predicate对象的逻辑取反。其定义如下:

default Predicate<T> negated() {
    return (t) -> !test(t);
}

可以看到,其返回一个新的Predicate对象,不同的是该对象的test()方法与原对象的test()方法结果相反。

使用示例

下面的示例演示了如何使用negated()方法过滤出不以“a”开头的字符串:

List<String> list = Arrays.asList("apple", "banana", "orange", "pear");

List<String> result = list.stream()
        .filter(((Predicate<String>) s -> s.startsWith("a")).negated())
        .collect(Collectors.toList());

System.out.println(result); // [banana, orange, pear]

可以看到,negated()方法将以“a”开头的字符串的筛选条件取反,只留下不以“a”开头的字符串。

总结

Java中的句点negated()方法可以很方便地实现条件取反,节省了我们很多的代码量,提高了程序开发效率。需要注意的是,negated()方法只是返回了一个取反的Predicate对象,并不会改变原始的条件。