关于流的小问题
来源:3-9 实战:常用中间操作演示之去重/跳过/截断

乃好
2019-09-20
老师你好
我想自己实现一个需求
/**
* 1. 对数据源进行按照价格的排序
* 2. 并不需要显示完整的数据,只需要显示名称和价格即可
* 3. 循环输出
*/
问题1:第二个需求我的实现方法是使用map,从sku对象中取出属性,将名称和价格进行一个字符串的拼接,但是这样的话他们就变成了一个字符串对象,我希望他们能够保持原来的对象状态以便以后做更多的处理,这样应该怎么做?
用个图来说明一下吧
就是能不能从一个流中取出两个分支?而不是所有操作都在一条流上处理呢?
问题2:怎么我的换行符不管是/n还是\n都不起作用了?
刚刚接触stream流,感觉用起来不是很顺手,同时也想问一下老师,如果一个功能可以用普通代码实现,那么是不是一定可以用lambda+stream来实现呢?
写回答
2回答
-
首先这样的需求用map是对的,但是因为map只能返回一个对象,你需要携带两个属性,所以一般的方式是通过封装成一个新对象解决。如果不想这样,也可以使用HashMap来存储。这样就解决你的问题了。
关于将两个属性拼接成字符串,一般不建议使用这些特殊字符,可以仅仅用逗号做分隔符,在guava章节会讲如何拼接和分割字符串,可以先看看。10 -
张小喜
2019-09-20
最后的问题,可以用普通代码实现的肯定可以用新特性实现,新特性只是为我们提供了一种新的编程思路和简化的技术。
00
相似问题