Java Stream filter()示例

Java Stream filter()示例

Stream filter(Predicate predicate) 返回一个由这个流中符合给定谓词的元素组成的流。这是一个 中间操作。_这些操作总是懒惰的,即执行中间操作如filter()实际上并不执行任何过滤,而是创建一个新的流,当被遍历时,包含初始流中符合给定谓词的元素。

语法

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

其中Stream是一个接口,T是谓词的输入类型。

返回类型: 一个新的流。

实现

  1. 过滤掉能被某个特定数字整除的元素,范围在0到10之间。
  2. 过滤掉在任何特定索引中带有大写字母的元素。
  3. 过滤掉以自定义字母结尾的元素。

例1: filter()方法的操作是过滤掉能被5除尽的元素。

// Java Program to get a Stream Consisting of the Elements
// of Stream that Matches Given Predicate for Stream filter
// (Predicate predicate)
  
// Importing required classes
import java.util.*;
  
// Class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Creating a list of Integers
        List<Integer> list = Arrays.asList(3, 4, 6, 12, 20);
  
        // Getting a stream consisting of the
        // elements that are divisible by 5
        // Using Stream filter(Predicate predicate)
        list.stream()
            .filter(num -> num % 5 == 0)
            .forEach(System.out::println);
    }
}

输出

20

例2: filter()方法的操作是过滤掉索引为1的大写字母的元素。

// Java Program to Get Stream Consisting of Elements
// of Stream that Matches Given Predicate
// for Stream Filter (Predicate predicate)
  
// Importing required classes
import java.util.stream.Stream;
  
// Class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
        // Creating a stream of strings
        Stream<String> stream = Stream.of(
            "Geeks", "fOr", "GEEKSQUIZ", "GeeksforGeeks");
  
        // Getting a stream consisting of the
        // elements having UpperCase Character
        // at custom index say be it '1'
        // using Stream filter(Predicate predicate)
        stream
            .filter(
                str -> Character.isUpperCase(str.charAt(1)))
            .forEach(System.out::println);
    }
}

输出

fOr
GEEKSQUIZ

例子3: filter()方法的操作是过滤掉以自定义字母结尾的元素,比如说为了实现这个目的,它是’s’。

// Java Program to Get a Stream Consisting ofElements
//  of Stream that Matches Given predicate
// for Stream filter (Predicate predicate)
  
// Importing required classes
import java.util.stream.Stream;
  
// Class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Creating a stream of strings
        Stream<String> stream = Stream.of(
            "Geeks", "foR", "GeEksQuiz", "GeeksforGeeks");
  
        // Getting a stream consisting of the
        // elements ending with 's'
        // using Stream filter(Predicate predicate)
        stream.filter(str -> str.endsWith("s"))
            .forEach(System.out::println);
    }
}

输出

Geeks
GeeksforGeeks

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程