这篇文章主要介绍“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排序”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。