关于流的小问题

来源:3-9 实战:常用中间操作演示之去重/跳过/截断

乃好

2019-09-20

老师你好

我想自己实现一个需求

/**
* 1. 对数据源进行按照价格的排序
* 2. 并不需要显示完整的数据,只需要显示名称和价格即可
* 3. 循环输出
*/

http://img.mukewang.com/szimg/5d84a05c0996ce9909370555.jpg

问题1:第二个需求我的实现方法是使用map,从sku对象中取出属性,将名称和价格进行一个字符串的拼接,但是这样的话他们就变成了一个字符串对象,我希望他们能够保持原来的对象状态以便以后做更多的处理,这样应该怎么做?

用个图来说明一下吧

http://img.mukewang.com/szimg/5d84af8c093d309e03130222.jpg

就是能不能从一个流中取出两个分支?而不是所有操作都在一条流上处理呢?


问题2:怎么我的换行符不管是/n还是\n都不起作用了?

刚刚接触stream流,感觉用起来不是很顺手,同时也想问一下老师,如果一个功能可以用普通代码实现,那么是不是一定可以用lambda+stream来实现呢?

写回答

2回答

张小喜

2019-09-20

首先这样的需求用map是对的,但是因为map只能返回一个对象,你需要携带两个属性,所以一般的方式是通过封装成一个新对象解决。如果不想这样,也可以使用HashMap来存储。这样就解决你的问题了。
关于将两个属性拼接成字符串,一般不建议使用这些特殊字符,可以仅仅用逗号做分隔符,在guava章节会讲如何拼接和分割字符串,可以先看看。

1
0

张小喜

2019-09-20

最后的问题,可以用普通代码实现的肯定可以用新特性实现,新特性只是为我们提供了一种新的编程思路和简化的技术。

0
0

Java高效编程技巧实践 告别996

可以改变的编程效率

1451 学习 · 326 问题

查看课程