世界机器人大会|技术干货|Java函数式编程之——Stream流
文章图片
文章图片
文章图片
文章图片
文章图片
【世界机器人大会|技术干货|Java函数式编程之——Stream流】
文章图片
文章图片
文章图片
在很多人去面试的时候被问起Stream流 , 如果没有玩过JDK8的Stream人都以为面试官在问你IO流 , 然后你一说IO流面试官直接否定你 , 然后再让你说Stream , 然后...
并且现在很多公司里写的代码也开始大量地加入了Stream流的操作 , 所以下面我们就来看看JDK8 给我们提供的一个非常好用的Stream的使用 。
1. Stream介绍
Stream以及相关流接口都是JDK8 新增的API , 它可以让我们声明式地对数组或集合的数据进行处理 , 所以它看起来更像是一种可以对数据处理的“数据流” 。
可以把流的看成是一个管道里的流 , 这样我们可以在管道中对流数据进行一些操作 , 比如筛选、排序、遍历、计数、聚合等等 。
开发中很多情况如果我们使用流对集合中数据进行操作就可以做到代码即干净简单、又高效地实现 。
值得注意的是Stream本身不会存储元素、Stream也不会改变源对象(原始数据) 。
流的使用可以分为三部分:
- 获取一个数据流
- 流的中间操作
- 流的终结操作(可以获取结果)
流的获取方式也有很多种 , 我们即可以通过Stream提供的of方法来获取一个流 , 也可以使用数组和集合提供的方法来获取一个流 。
- Stream获取
- 数组获取
- 集合获取
3. 流的中间操作
Stream流提供了很多的的中间处理操作 , 例如:遍历、过滤、排序、限定查询等 。
- 循环遍历-forEach
forEach方法中就是对集合循环遍历的时候执行的代码 , 这里可以使用Lambda表达式来完成 , 使用如下:
- 数据过滤-filter
filter方法可以根据我们设定的过滤条件是否满足来筛选数据 , 需要返回一个boolean结果 , 如果返回为true则通过放入结果集 , 返回false则不会放入结果集 。
使用如下:
- 元素值转换-map
- 产业|打造世界级产业地标 中国声谷冲刺5000亿产值
- 物联网|据说,物联网也可以称之为“一张想想的网络”,物联网世界是梦
- 我们的生活|社交正在推动“孤独生意”多元化发展,天聊将重塑用户精神世界!
- 入场券|元宇宙世界的“入场券”?市场规模将达2700亿元!这类人才太紧缺→
- 宋嘉吉|元宇宙世界的“入场券”?市场规模将达2700亿元!这类人才太紧缺
- 图灵奖|中国科技团队创历史,360打破行业垄断,登顶世界最强人工智能榜
- 图灵奖|“世界最强”人工智能榜单,“中国代表队”力压群雄登顶榜首
- 白白胖胖头顶起雾走走停停安全无误在哈尔滨站候车厅内一边消毒一边在室内移动的智能消毒机器人...|火车站里的机器人服务,是什么体验?
- 一晚上偷来50辆世界顶级豪车,没有比这更牛了!
- 机器人|售价10万的日本“妻子”机器人,除了生娃啥都能做?太天真了