对于Comparator.comparing(。。。)不太理解
来源:3-3 实战:利用Lambda+Stream处理业务逻辑

乃好
2020-04-01
老师您好,不太理解下面这块的排序写法
可以详细说说吗?
写回答
3回答
-
咱们看看是如何从这种方式进行演化的啊。
这是你熟悉的方式,它的底层是调用list.sort方法的。可以看看源码:
所以就能改写成上面这样list.sort()的方式。
我们再来看看Comparator的静态方法comparing是什么:
它其实就是使用lambda表达式定义了一个Comparator的函数式接口,并且提供了一个function的参数负责从c1和c2中获取相应的属性。
所以最后可以改写成这样:
就是告诉list,我想使用Sku对象的skuId属性进行排序。
其实这种声明式的编程方式将底层实现细节屏蔽了很多,比如说你使用SELECT * FROM USER的时候,根本不用关心它底层是如何对数据进行检索的。类似的Stream也是这样,我们直接调用它sort方法,给它一个需要排序的字段,它就帮我们排好序了。
212020-04-06 -
张小喜
2020-04-02
可以加我qq,咱们约个时间,给你说说这块
00 -
张小喜
2020-04-02
你是指双冒号这种写法吗,可以看看后面补充的方法引用精讲那节。
012020-04-02
相似问题