java8新特性-StreamAPI的使用

Stream的操作步骤

1.创建Stream
通过一个数据源(如:集合、数组),获取一个流
2.中间操作
中间操作链:对数据源的数据进行操作
3.终止操作
执行中间操作链,并产生结果

创建Stream

1.可以通过Collection系列集合提供的stream()或parallelStream()
2.通过Arrays中的静态方法stream()获取数组流
3.通过Stream类中的静态方法of()
4.创建无限流

//1.可以通过Collection系列集合提供的stream()或parallelStream()
List<String> list = new ArrayList<>();
Stream<String> stream1 = list.stream();//2.通过Arrays中的静态方法stream()获取数组流
Employee[] emps = new Employee[10];
Stream<Employee> stream2 = Arrays.stream(emps);//3.通过Stream类中的静态方法of()
Stream<String> stream3 = stream.of("aa","bb","cc");//4.创建无限流
//迭代
Stream<Integer> stream4 = Stream.iterate(0,(x) -> x+2 );
stream4.limit(10).forEach(System.out::println);//生成
Stream.generate(() -> Math.random())      
	.limit(5)      
	.forEach(System.out::println);

中间操作

1.筛选与切片

filter-----接收Lambd,从流中排除某些元素
limit------截断流,使其元素不超过给定数量
skip(n)----跳过元素,返回一个扔掉前n个元素的流。若流中元素不足n个,则返回一个空流。与limit(n)互补
distinct—筛选,通过流所生成元素的hashCode()和equals()去除重复元素(需重写hashCode和equals方法)

List<Employee> employees = Arrays.asList(
		new Employee("张三"189999.99),
		new Employee("李四",58,5555.55),
		new Employee("王五",26,3333.33),
		new Employee("赵六",36,6666.66),
		new Employee("田七",12,8888.88),
  	new Employee("田七",12,8888.88),
  	new Employee("田七",12,8888.88),
  	new Employee("田七",12,8888.88),
);

//filter的使用:过滤出流中年龄大于35岁的
//中间操作:不会执行任何操作
Stream<Employee> stream = employees.stream()
  						.filter((e) -> {
   
                              System.out.println("Stream API 的中间操作");
                              return e.getAge() > 35;
                            });
//终止操作:一次性执行全部操作,即“惰性操作”
stream.forEach(System.out::println);


//limit的使用:过滤出工资大于5000的前两个
employees.stream()
  		 .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值