Java Stream API Filter(过滤器)

Java Stream API Filter(过滤器)

通过满足指定谓词的流中的项目组成的流将由流过滤函数返回。这是一个中间级操作。这些操作总是懒惰的,即运行过滤函数或其他中间操作实际上并不过滤任何内容;相反,它生成一个新的流,当遍历时,包括满足提供的谓词的初始流的项目。

语法

Stream<T> filter(Predicate<? super T> predicate)

当T是谓词输入的类型,并且stream是一个接口。

返回类型

A new stream.

实施

  • Eliminating items that may be divided into a range of numbers from 0 to 10.

  • 在特定索引处删除以大写字母开头的条目。

  • 删除以特定字母结尾的组件。

Example 1: filter() method with the operation of filtering the elements which are divisible by 5

// Java Program to get a Stream Consisting of the Elements

import java.util.*;
public class Example {
   public static void main(String[] args){
      List<Integer> list = Arrays.asList(3, 4, 6, 12, 20);
      list.stream()
         .filter(num -> num % 5 == 0)
         .forEach(System.out::println);
   }
}

Output

20

示例2:使用filter()方法过滤索引1处有大写字母的元素

// Java Program to Get Stream Consisting of Elements

import java.util.stream.Stream;
public class Example  {
   public static void main(String[] args) {
      Stream<String> stream = Stream.of("class", "FOR", "QUIZ", "waytoclass");
      stream.filter(str -> Character.isUpperCase(str.charat(1)))
         .forEach(System.out::println);
   }
}

Output

FOR
QUIZ

Example 3: filter() method with the operation of filtering the element ending with customs alphabetically letter

// Java Program to Get a Stream Consisting of Elements
import java.util.stream.Stream;
public class Example {

   public static void main(String[] args){
      Stream<String> stream = Stream.of("Class", "FOR", "Quiz", "WaytoClass");
      stream.filter(str -> str.endsWith("s"))
      .forEach(System.out::println);
   }
}

Output

Class
WaytoClass

Conclusion

改善我们的Java代码功能的一种方法是利用filter()方法。与强制或方法论相反。然而,在使用filter()函数时需要记住一些事情。

例如,将多个过滤器方法链接在一起可能会导致代码运行缓慢。这是因为可能会创建一个满足谓词条件的元素的新流作为中间操作。因此,减少filter()调用次数的关键是将谓词合并成一个句子。

以上就是Java Stream API Filter(过滤器)的详细内容,更多请关注编程之家其它相关文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


应用场景 C端用户提交工单、工单创建完成之后、会发布一条工单创建完成的消息事件(异步消息)、MQ消费者收到消息之后、会通知各处理器处理该消息、各处理器处理完后都会发布一条将该工单写入搜索引擎的消息、最终该工单出现在搜索引擎、被工单处理人检索和处理。 事故异常体现 1、异常体现 从工单的流转记录发现、
线程类,设置有一个公共资源 package cn.org.chris.concurrent; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @Descrip
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量
Java 9中JShell中的不同启动脚本是什么?
使用Java的位填充错误检测技术
java中string是什么
如何使用Java中的JSON-lib API将Map转换为JSON对象?
Java菜单驱动程序以检查数字类型
使用Junit的Maven项目 - 检查银行账号
JAVA编程基础
在Java中使用throw、catch和instanceof来处理异常
在Java中,将数组分割为基于给定查询的子数组后,找到子数组的最大子数组和
如何在Java中从给定的字符串中删除HTML标签?
在PHP中,IntlChar getBlockCode()函数的翻译如下:
如何在Android中实现按下返回键再次退出的功能?
如何使用Java中的流式API解析JSON字符串?
Java中的模式类