• 生活小妙招免费各类生活中的小问题知识以及音乐简谱等,是你了解世界未知知识的好地方。

为什么程序员工作后就喜欢用stream流?

十万个为什么 空空 2024-3-26 13:21:17 2次浏览

关于问题为什么程序员工作后就喜欢用 stream 流?一共有 5 位热心网友为你解答:

【1】、来自网友【葡萄城 GrapeCity】的最佳回答:

我就非常喜欢写 stream。

for 循环里复杂的超过 5 行的逻辑,需要单独写函数,所以也不会允许在 map 里写超级复杂的 for 的逻辑。超过这些行数的代码段,即便写在 for 循环里,使得一个函数里一大堆 for 循环,同样不好读。所以我更推荐函数多,而每个函数行数少。

至于为什么推荐 stream,我觉得 stream 非常适合抽象思维去解决业务,而且我们就算做 CRM,ERP 等业务系统,我,至少我自己,对运行中的算法复杂度和空间复杂度都是很看重的(并且我们不允许 MySQL 的 join)。所以经常在业务逻辑中用数组,哈希表,树,对我来说,后端的数据都是各种 map filter distinct 等抽象而来的,而且写起来很有数学+抽象+逻辑思维。这一点上,我非常喜欢 stream。并且 stream 的一些特性也非常好用,比如保持原有的顺序。

况且我非常喜欢函数式的思维,无论是在业务开发,还是 AI,还是策略开发,还是运维各个领域,甚至到架构,函数式的思维也非常有用,甚至是非常有意义的。比如 serverless,有没有想过,在底层逻辑上,这两着之间有共同之处呢?Linux 的 terminal 的 pipeline,其实也和 stream 很像。

这是我喜欢用 stream 的逻辑。

【2】、来自网友【重阳可可】的最佳回答:

阁下说的应该是集合类的流式处理,而不是文件流吧!

1.流式处理从思维的角度来说那就是通畅,可以不需要思维阻塞地一直写才去,有一种看爽文的感觉,如果没有流式处理,那么就需要不停地打断思路遍历集合进行处理,代码是又丑又很难看懂!

2.最喜欢流式处理的应该是数据开发类的程序员,很多数据的处理工作很复杂,分步骤,需要不同的处理逻辑,适用流式处理就可以把每一个步骤当成流的一个操作节点处理,方便!

举例:

1.如果写过 mapreduce 的都知道,常规写法可能需要写一个循环,超级复杂,如果使用流就可以写成:(sparkstreaming 举例:)

# 统计词频

counts = lines.map(lambda x:x.strip()) #1.去除首位空格 .flatMap(lambda x: x.split(‘ ‘)) #2.根据空格分出每一个词 .filter(lambda x:x not in stop_words) #3.过滤掉停用词 .map(lambda x: (x, 1)) #4.给每一个词标记 1 .reduceByKey(add) #5.统计求和

.sortBy(lambda x:-x[1]) # #排序

通过一个流式的处理就简单完成了

1.java 的一个数据处理流程举例

List<Entity> entityList = xxxx;

MapFrame<Object,Double> groups = ListFrame.fromList(entityList )

.handle(“value=format(value,2)”) //1.列表实体的 value 保留两位小数

.handle(entity->entity.getName()==null,”name=‘‘”) //2.name 为空变为””

.handle(entity->entity.getValue()==null,”value=0″,”value=value+2″) //3.value 不为空+2

.handle(“name=replace(name,‘#‘,‘‘)”) //4.替换#

.handle(“percent=double(value)/”+sum) //5.计算百分比

.groupBy(“name”).sum(“percent”); //6.分组统计

上面的过程在不写 for 循环的条件下就流式处理完了,仅仅从写那一刻的感觉来说就很通畅

再见

【3】、来自网友【乌氏危言】的最佳回答:

我不喜欢用。工作了几年发现,技术技巧还是得选简单实用的。能 if,for 解决,就不要用 stream,lambda

【4】、来自网友【veenter】的最佳回答:

看这个标题 就知道你没工作

【5】、来自网友【程序缘来啦】的最佳回答:

不确定您问的是不是 c++的 stream 流,参加工作后你总有机会遇到它的,它的作用分场景有很多种,

1.类型转换,就是其它任何类型向字符串转换。

2.拼装字符串时,但是成员又都不一定是字符串,用它就方便。

3.可以重载输出流函数针对自定义结构定制化输出到流中。

4.文件 stream 是可以直接操作读写文件的。

流可以理解为管道,进入管道输出是统一的字符串,输出时又可以根据内容来转为想要内容类型。逻辑统一化处理。

以上就是关于问题【为什么程序员工作后就喜欢用 stream 流?】的全部回答,希望能对大家有所帮助,内容收集于网络仅供参考,如要实行请慎重,任何后果与本站无关!

喜欢 (0)