stream(流) 查找方法

stream(流) 查找方法

Stream API提供了allMatch、anyMatch、noneMatch、findFirst和findAny方法


import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class StreamMain {

    public static void main(String[] args) {
        List<User> userList = new ArrayList();
        userList.add(new User("张1", 12, "男"));
        userList.add(new User("张2", 20, "女"));
        userList.add(new User("张3", 18, "男"));
        userList.add(new User("张4", 24, "女"));
        userList.add(new User("张5", 16, "男"));
        userList.add(new User("张1", 12, "男"));
        
         // 查找userlist中有没有年龄==18的 有就是true
        boolean anyMatch = userList.stream().anyMatch(x -> x.getAge() == 18);
        System.out.println(anyMatch);

        // 查找userlist中有没有年龄==77的 有就是false
        boolean noonMatch = userList.stream().noneMatch(x -> x.getAge() == 77);
        System.out.println(noonMatch);

        // 查找userlist中全部有没有年龄==99的 有就是true
        boolean b = userList.stream().allMatch(x -> x.getAge() != 99);
        System.out.println(b);

        // 查找userlist找到任意一个就返回
        Optional<User> any = userList.stream().findAny();
        System.out.println(any);

        // 查找userlist找到第一个就返回
        Optional<User> first = userList.stream().findFirst();
        System.out.println(first.toString());
    }
}

allMatch :流中的元素相等
anyMatch:流中的元素是否都能匹配给定的谓词
noneMatch: 确保流中没有任何元素与给定的谓词相等,与allMatch相反
findAny:返回当前流中的任意元素;
findFirst:返回第一个元素

你可能感兴趣的:(java,java,开发语言)