• Java 8 Streams filter examples


    1. Streams filter() and collect()

    package com.mkyong.java8;

    import java.util.Arrays;
    import java.util.List;
    import java.util.stream.Collectors;

    public class NowJava8 {

    public static void main(String[] args) {

    List<String> lines = Arrays.asList("spring", "node", "mkyong");

    List<String> result = lines.stream() // convert list to stream
    .filter(line -> !"mkyong".equals(line)) // we dont like mkyong
    .collect(Collectors.toList()); // collect the output and convert streams to a List

    result.forEach(System.out::println); //output : spring, node

    }

    }

    Output


    spring
    node


    2. Streams filter(), findAny() and orElse()
    package com.mkyong.java8;

    import java.util.Arrays;
    import java.util.List;

    public class NowJava8 {

    public static void main(String[] args) {

    List<Person> persons = Arrays.asList(
    new Person("mkyong", 30),
    new Person("jack", 20),
    new Person("lawrence", 40)
    );

    Person result1 = persons.stream() // Convert to steam
    .filter(x -> "jack".equals(x.getName())) // we want "jack" only
    .findAny() // If 'findAny' then return found
    .orElse(null); // If not found, return null

    System.out.println(result1);

    Person result2 = persons.stream()
    .filter(x -> "ahmook".equals(x.getName()))
    .findAny()
    .orElse(null);

    System.out.println(result2);

    }

    }
    Output


    Person{name='jack', age=20}
    null


    2.3 For multiple condition.

    NowJava8.java

    package com.mkyong.java8;

    import java.util.Arrays;
    import java.util.List;

    public class NowJava8 {

    public static void main(String[] args) {

    List<Person> persons = Arrays.asList(
    new Person("mkyong", 30),
    new Person("jack", 20),
    new Person("lawrence", 40)
    );

    Person result1 = persons.stream()
    .filter((p) -> "jack".equals(p.getName()) && 20 == p.getAge())
    .findAny()
    .orElse(null);

    System.out.println("result 1 :" + result1);

    //or like this
    Person result2 = persons.stream()
    .filter(p -> {
    if ("jack".equals(p.getName()) && 20 == p.getAge()) {
    return true;
    }
    return false;
    }).findAny()
    .orElse(null);

    System.out.println("result 2 :" + result2);

    }


    }
    Output


    result 1 :Person{name='jack', age=20}
    result 2 :Person{name='jack', age=20}

    3. Streams filter() and map()
    NowJava8.java

    package com.mkyong.java8;

    import java.util.Arrays;
    import java.util.List;
    import java.util.stream.Collectors;

    public class NowJava8 {

    public static void main(String[] args) {

    List<Person> persons = Arrays.asList(
    new Person("mkyong", 30),
    new Person("jack", 20),
    new Person("lawrence", 40)
    );

    String name = persons.stream()
    .filter(x -> "jack".equals(x.getName()))
    .map(Person::getName) //convert stream to String
    .findAny()
    .orElse("");

    System.out.println("name : " + name);

    List<String> collect = persons.stream()
    .map(Person::getName)
    .collect(Collectors.toList());

    collect.forEach(System.out::println);

    }

    }
    Output


    name : jack

    mkyong
    jack
    lawrence


    源文
    https://www.mkyong.com/java8/java-8-streams-filter-examples/

  • 相关阅读:
    IPC之PIPE
    MSChart的研究(转)
    计算机信息类ComputerInfo(车)
    c# 操作Word总结(车)
    js跳转页面(转)
    textarea中的回车识别问题
    js的页面传值cookie.session
    destoon使用
    vscode 配置php
    vscode开发c#
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/9999743.html
Copyright © 2020-2023  润新知