java8新特性学习---------StreamAPI

概念

Stream是java8中处理集合的关键抽象概念,它可以指定你希望是对集合进行的操作,可进行非常复杂的查找过滤和映射数据等操作。

创建Stream

  1. 方式一

通过Connection系列集合提供的Stream() 或者 parallelStream()来创建

 List<Employee> employees = Arrays.asList(
   new Employee("张三", 32, 3333.33),
   new Employee("李四", 23, 4444.33),
   new Employee("李四", 18, 5555.33),
   new Employee("李四", 18, 5555.33),
   new Employee("李四", 18, 5555.33),
   new Employee("赵六", 40, 6666.33),
   new Employee("孙七", 40, 7777.33),
   new Employee("王八", 66, 8888.33),
   new Employee("小九", 66, 9999.33)
  );
  
  //创建Stream
  Stream<Employee> stream = employees.stream();
  1. 方式二

通过Arrays 中的静态方法Stream() 获取数组流

  String[] strs = {"wo","you","dian","fan","a"};
  Stream<String> stream2 = Arrays.stream(strs);
  1. 方式三

通过Stream类中的静态方法 of() 得到Stream流

Stream<String> stream3 = Stream.of("wo","jue","de","ni","bu","ting","hua");
  1. 方式四

创建无限流(迭代

Stream<Integer> stream4 = Stream.iterate(0, (x) -> x+2);

Stream的中间操作

多个中间操作可以连接起来形成一个流水线,除非流水线上触发终止操作,否则中间操作不会执行任何处理!而在终止操作时一次性全部处理,称作“惰性求值”

  1. filter操作

接受lambda,从流中排除某些元素

//筛选出工资小于6000的员工
stream.filter((emp) -> emp.getSalary() < 6000)
  1. limit操作

截断流,使其元素不超过给定的数量

//不超过两个
Stream.limit(2);
  1. skip操作

跳过元素,返回一个可以抛掉前n个元素的流

//抛掉前三个元素
Stream.skip(3);
  1. distint操作
    筛选,通过流所产生的元素的 hashCode() 和 equals() 去掉重复元素(筛选目标需要重写 hashCode() 和 equals() 方法)
stream.distinct();

终止操作

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

附图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值