arraylist如何实现排序,java arraylist有序
目录
简介法1:JDK8的溪流法2:比较器#比较()法3:Comparable#compareTo()
简介
说明
本文用示例介绍爪哇的数组列表排序的方法。
List排序方法
主要有三种方法(按推荐度排序):
JDK8的流比较器# compare()Comparable # compare to()
法1:JDK8的stream
见:一文详解爪哇中溪流流的使用
法2:Comparator#compare()
需求:用户有成绩和年龄。按成绩排序,若成绩相同,则按年龄排序。
包org。举例。a;导入Java。util。ArrayList导入Java。util。收藏;导入Java。util。比较器;导入Java。util。列表;类用户{私人智力分数私人年龄;public User(int score,int age){ super();this.score=scorethis.age=年龄;} public int get score(){ return score;} public void setScore(int score){ this。分数=分数;} public int getAge(){ return age;} public void setAge(int age){ this。年龄=年龄;} } public class Demo { public static void main(String[]args){ ListUser users=new ArrayListUser();users.add(新用户(95,26));users.add(新用户(84,23));users.add(新用户(96,25));users.add(新用户(95,24));Collections.sort(users,new comparator User(){ @ Override public int compare(User O1,User O2){ int I=O2。get score()-O1。get score();if(I==0){ return O1。getage()-O2。getage();} return I;} });对于(用户User :用户){ system。出去。println(用户。getscore(),用户。getage());} } }执行结果
96,2595,2495,2684,23
法3:Comparable#compareTo()
默认按增序排序:
包org。举例。a;导入Java。util。ArrayList导入Java。util。收藏;导入Java。util。列表;public class Demo { public static void main(String[]args){ list integer nums=new ArrayListInteger();nums。增加(3);nums。增加(5);nums。添加(1);nums。添加(0);系统。出去。println(nums);收藏。排序(nums);系统。出去。println(nums);} }执行结果:
[3, 5, 1, 0][0, 1, 3, 5]
需求:用户有成绩和年龄。按成绩降序排序,若成绩相同,则按年龄正序排序。
包org。举例。a;导入Java。util。ArrayList导入Java。util。收藏;导入Java。util。列表;类用户实现可比用户{ private int score私人年龄;public User(int score,int age){ super();this.score=scorethis.age=年龄;} public int get score(){ return score;} public void setScore(int score){ this。分数=分数;} public int getAge(){ return age;} public void setAge(int age){ this。年龄=年龄;} @ Override public int compare to(User o){ int I=o . get score()-this。get score();if(I==0){返回此。getage()-o . getage();} return I;} } public class Demo { public static void main(String[]args){ ListUser users=new ArrayListUser();users.add(新用户(95,26));users.add(新用户(84,23));users.add(新用户(96,25));users.add(新用户(95,24));集合.排序(用户);对于(用户User :用户){ system。出去。println(用户。getscore(),用户。getage());} } }执行结果
96,2595,2495,2684,23
到此这篇关于爪哇实现数组列表排序的方法详解的文章就介绍到这了,更多相关爪哇数组列表排序内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。