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:返回第一个元素