您好,登录后才能下订单哦!
这篇文章主要介绍“Java如何实现ArrayList排序”,在日常操作中,相信很多人在Java如何实现ArrayList排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java如何实现ArrayList排序”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
说明
本文用示例介绍Java的ArrayList排序的方法。
List排序方法
主要有三种方法(按推荐度排序):
JDK8的stream
Comparator#compare()
Comparable#compareTo()
见:一文详解Java中Stream流的使用
需求:用户有成绩和年龄。按成绩排序,若成绩相同,则按年龄排序。
package org.example.a; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class User{ private int score; private int age; public User(int score, int age){ super(); this.score = score; this.age = age; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class Demo { public static void main(String[] args) { List<User> users = new ArrayList<User>(); users.add(new User(95, 26)); users.add(new User(84, 23)); users.add(new User(96, 25)); users.add(new User(95, 24)); Collections.sort(users, new Comparator<User>() { @Override public int compare(User o1, User o2) { int i = o2.getScore() - o1.getScore(); if(i == 0){ return o1.getAge() - o2.getAge(); } return i; } }); for(User user : users){ System.out.println(user.getScore() + "," + user.getAge()); } } }
执行结果
96,25
95,24
95,26
84,23
默认按增序排序:
package org.example.a; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Demo { public static void main(String[] args) { List<Integer> nums = new ArrayList<Integer>(); nums.add(3); nums.add(5); nums.add(1); nums.add(0); System.out.println(nums); Collections.sort(nums); System.out.println(nums); } }
执行结果:
[3, 5, 1, 0]
[0, 1, 3, 5]
需求:用户有成绩和年龄。按成绩降序排序,若成绩相同,则按年龄正序排序。
package org.example.a; import java.util.ArrayList; import java.util.Collections; import java.util.List; class User implements Comparable<User>{ private int score; private int age; public User(int score, int age){ super(); this.score = score; this.age = age; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int compareTo(User o) { int i = o.getScore() - this.getScore(); if(i == 0){ return this.getAge() - o.getAge(); } return i; } } public class Demo { public static void main(String[] args) { List<User> users = new ArrayList<User>(); users.add(new User(95, 26)); users.add(new User(84, 23)); users.add(new User(96, 25)); users.add(new User(95, 24)); Collections.sort(users); for(User user : users){ System.out.println(user.getScore() + "," + user.getAge()); } } }
执行结果
96,25
95,24
95,26
84,23
到此,关于“Java如何实现ArrayList排序”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。