
咱们看看是如何从这种方式进行演化的啊。
这是你熟悉的方式,它的底层是调用list.sort方法的。可以看看源码:

所以就能改写成上面这样list.sort()的方式。
我们再来看看Comparator的静态方法comparing是什么:

它其实就是使用lambda表达式定义了一个Comparator的函数式接口,并且提供了一个function的参数负责从c1和c2中获取相应的属性。
所以最后可以改写成这样:

就是告诉list,我想使用Sku对象的skuId属性进行排序。
其实这种声明式的编程方式将底层实现细节屏蔽了很多,比如说你使用SELECT * FROM USER的时候,根本不用关心它底层是如何对数据进行检索的。类似的Stream也是这样,我们直接调用它sort方法,给它一个需要排序的字段,它就帮我们排好序了。