像使用SQL一样,对List对象集合进行排序

2025-04-12 02:59:25

1、一、字符串List排序1.cities是一个字符串数组。注意london的首字母是小写的。2.当使用sort方法,按照String.CASE_INSENSITIVE_ORDER(字母大小写不敏感)的规则排序,结果是:[london, Milan, New Delhi, San Francisco, Tokyo]3.如果使用Comparator.naturalOrder()字母自然顺序排序,结果是:[Milan, New Delhi, San Francisco, Tokyo, london]在java 7我们是使用Collections.sort()接受一个数组参数,对数组进行排序。在java 8之后可以直接调用集合类的sort()方法进行排序。sort()方法可以传入一个字符串的排序规则,如:String.CASE_INSENSITIVE_ORDER,也可以传入一个排序器Comparator.naturalOrder()作为参数。

像使用SQL一样,对List对象集合进行排序

2、二、整数类型List排序按数字的自然顺序排序,结果是[1, 2, 4, 6, 9]

像使用SQL一样,对List对象集合进行排序

3、三、按对象字段对对象雉搽妤粲List排序举个例子。假设我们有一个类Movie,有三个成员变量分别是starred(是否收藏), title(电影名称), rati荏鱿胫协ng(评分)。1.首先,我们创建了四个Movie对象,然后将它们转换为List2.然后重点的的代码:使用了函数应用Movie::getTitle作为对象的排序字段,即按照电影的title作为排序字段3.然后调用List的forEach方法将List排序结果打印出来,如下(当然我们重写了toString方法,不然打印结果没有意义)4.如果我们希望List按照Title的倒序排序,就使用reversed()方法。如:Comparator.comparing(Movie::getTitle).reversed()。

像使用SQL一样,对List对象集合进行排序
像使用SQL一样,对List对象集合进行排序

4、四、使用自定义Comparator排序我们自定义一个排序器,实现compare函数。返回0表示元素相等,-1表示前一个元素小于后一个元素,1表示前一个元素大于后一个元素。这个规则似乎和java 8之前没什么区别。

像使用SQL一样,对List对象集合进行排序

5、五、最终的打印结果如下,按照started的自定义规则进行排序

像使用SQL一样,对List对象集合进行排序

6、六、这段代码如果以lambda表达式简写。箭头左侧是参数,右侧是函数体,参数类型和返回值根据上下文自动判断。如下:

像使用SQL一样,对List对象集合进行排序

7、七、通过Comparator链对对象List排序

像使用SQL一样,对List对象集合进行排序

8、八、上面这段代码先是按是否收藏的倒序排序,再按照电影的评分大小的倒序排序,排序结果如下:

像使用SQL一样,对List对象集合进行排序
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢