java8排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java8排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2052字,纯文字阅读大概需要3分钟。
内容图文
![java8排序](/upload/InfoBanner/zyjiaocheng/815/26c26e9751cf490e8314f49fb18e3b3c.jpg)
- 一:对整数进行排序
-
List<Integer> numbers =Arrays.asList(6,2,1,4,9);
-
System.out.println(numbers);//[6, 2, 1, 4, 9]
-
numbers.sort(Comparator.naturalOrder());
-
System.out.println(numbers);//[1, 2, 4, 6, 9]
- 二、按字符串字段对列表进行排序
-
List<Movie> movies =Arrays.asList(
-
newMovie("Lord of the rings"),
-
newMovie("Back to the future"),
-
newMovie("Carlito's way"),
-
newMovie("Pulp fiction"));
-
movies.sort(Comparator.comparing(Movie::getTitle));
-
movies.forEach(System.out::println);
- 提取的类型是String,而String实现了
Comparable
接口,所以list能正确排序。 -
三、按double字段排序列表
-
List<Movie> movies =Arrays.asList(
-
newMovie("Lord of the rings",8.8),
-
newMovie("Back to the future",8.5),
-
newMovie("Carlito's way",7.9),
-
newMovie("Pulp fiction",8.9));
-
movies.sort(Comparator.comparingDouble(Movie::getRating)
-
.reversed());
-
movies.forEach(System.out::println);
- 我们使用反转函数(
reversed
)来反转默认从低到高的自然排序,Comparator.comparingDouble()
底层使用Double.compare()
实现。如果需要比较int
或long
,可以分别使用comparisonInt()
和comparisonLong()
。 - 四、使用自定义比较器多列表进行排序
-
List<Movie> movies =Arrays.asList(
-
newMovie("Lord of the rings",8.8,true),
-
newMovie("Back to the future",8.5,false),
-
newMovie("Carlito's way",7.9,true),
-
newMovie("Pulp fiction",8.9,false));
-
movies.sort(newComparator<Movie>(){
-
@Override
-
publicint compare(Movie m1,Movie m2){
-
if(m1.getStarred()== m2.getStarred()){
-
return0;
-
}
-
return m1.getStarred()?-1:1;
-
}
-
});
- 我们可以使用
lambda
表达式而不是匿名类(Anonymousclass
),如下所示: -
movies.forEach(System.out::println);
-
movies.sort((m1, m2)->{
-
if(m1.getStarred()== m2.getStarred()){
-
return0;
-
}
-
return m1.getStarred()?-1:1;
-
});
- 也可以使用
Comparator.comparing()
: -
movies.sort(Comparator.comparing(Movie::getStarred,(star1, star2)->{
-
if(star1 == star2){
-
return0;
-
}
-
return star1 ?-1:1;
-
}));
-
-
-
-
-
List<Integer> numbers =Arrays.asList(6,2,1,4,9);
-
System.out.println(numbers);//[6, 2, 1, 4, 9]
-
numbers.sort(Comparator.naturalOrder());
-
System.out.println(numbers);//[1, 2, 4, 6, 9]
原文链接:https://dzone.com/articles/java-8-comparator-how-to-sort-a-list
作者: Mario Pio Gioiosa
译者:Steephan
内容总结
以上是互联网集市为您收集整理的java8排序全部内容,希望文章能够帮你解决java8排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。