StreamAPI的简单使用


import com.google.common.collect.Lists;

import javax.swing.*;
import java.util.ArrayList;
import java.util.List;

import static com.google.common.collect.Lists.newArrayList;


/*
* 本类用来演示Java8.0新特性 StreamAPI
* 结合lambda表达式强的流式操作
*
*
*
* */
public class StreamAPI {
public static void main(String[] args) {
// List<Person> persons=new ArrayList<>();
Person p1=new Person("jack",25,"中国",'M');
Person p2=new Person("rose",22,"美国",'F');
Person p3=new Person("tom",21,"美国",'M');
Person p4=new Person("Lilei",26,"中国",'M');
Person p5=new Person("Hanmeimei",29,"中国",'F');

// 使用guaua
List<Person> persons= newArrayList(p1,p2,p3,p4,p5);
// JDK9.0提供 当前版本8.0改为11.0版本
// 注意:此方法获取的时一个不变的集合类,所以无法进行增删操作

// lamdba表达式
// List<Person> persons= List.of(p1,p2,p3,p4,p5);

persons.stream().filter((p)->p.getAge()>25).forEach(System.out::println);

// 查询出中国人数量
persons.stream().filter((p)->p.getContry().equals("中国")).forEach(System.out::println);
// 查询全部男生中两个 limit切片(分页)
persons.stream().filter((p)->p.getSex()=='M').limit(2).forEach(System.out::println);
// skip 跳过
persons.stream().filter((p)->p.getSex()=='M').skip(2).forEach(System.out::println);
// distinct 排重
persons.stream().distinct().forEach(System.out::println);
// 全部匹配 boolean 类型
System.out.println(persons.stream().allMatch((p)->p.getAge()>18))
// 统计所有人年龄综合
persons.stream().map(Person::getAge).reduce(Integer::sum).get();




}
}
 
posted @ 2022-05-27 09:44  Miraitowaa  阅读(90)  评论(0)    收藏  举报