Java List集合排序?qū)崿F(xiàn)方法解析
這篇文章主要介紹了Java List集合排序?qū)崿F(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1.使用 Collections 工具類中的 sort() 方法
參數(shù)不同:
void sort(List list) 在自定義類User里面實現(xiàn)Comparable<User>接口,并重寫抽象方法compareTo(Student o);
void sort(List list, Comparator c) 第二個參數(shù)為了省事,可以直接使用匿名內(nèi)部類
public 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 = this.getAge() - o.getAge();//先按照年齡排序
if(i == 0){
return this.score - o.getScore();//如果年齡相等了再用分數(shù)進行排序
}
return i;
}
}
public static void main(String[] args) {
List<User> users = new ArrayList<User>();
users.add(new User(78, 26));
users.add(new User(67, 23));
users.add(new User(34, 56));
users.add(new User(55, 23));
Collections.sort(users);
for(User user : users){
System.out.println(user.getScore() + "," + user.getAge());
}
}
public class Students {
private int age;
private int score;
public Students(int age, int score){
super();
this.age = age;
this.score = score;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
public static void main(String[] args) {
List<Students> students = new ArrayList<Students>();
students.add(new Students(23, 100));
students.add(new Students(27, 98));
students.add(new Students(29, 99));
students.add(new Students(29, 98));
students.add(new Students(22, 89));
Collections.sort(students, new Comparator<Students>() {
@Override
public int compare(Students o1, Students o2) {
int i = o1.getScore() - o2.getScore();
if(i == 0){
return o1.getAge() - o2.getAge();
}
return i;
}
});
for(Students stu : students){
System.out.println("score:" + stu.getScore() + ":age" + stu.getAge());
}
}
2.直接使用list.sort()方法,傳入實現(xiàn)Comparator接口的實現(xiàn)類的實例,為了省事直接傳入匿名內(nèi)部類
public class Students {
private int age;
private int score;
public Students(int age, int score){
this.age = age;
this.score = score;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
public static void main(String[] args) {
List<Students> students = new ArrayList<Students>();
students.add(new Students(23, 100));
students.add(new Students(27, 98));
students.add(new Students(29, 99));
students.add(new Students(29, 98));
students.add(new Students(22, 89));
students.sort(new Comparator<Students>() {
@Override
public int compare(Students o1, Students o2) {
int i = o1.getScore() - o2.getScore();
if (i == 0) {
return o1.getAge() - o2.getAge();
}
return i;
}
});
for (Students stu : students) {
System.out.println("score:" + stu.getScore() + ":age" + stu.getAge());
}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
學習Java之自定義異常與NullPointerException的處理
有時候Java自身提供的異常類并不能很好地表達我們的需求,所以這時候我們就可以自定義異常,也就是說,我們可以制造出一個自己的異常類,這樣就可以拋出或捕獲自己的異常了,本文就給大家詳細講講Java自定義異常與NullPointerException的處理2023-08-08
springMVC+ajax實現(xiàn)文件上傳且?guī)нM度條實例
Java 在PPT中添加文本和圖片超鏈接的實現(xiàn)方法
Spring中@Value讀取properties作為map或list的操作
Java淺析代碼塊與構(gòu)造塊及靜態(tài)塊三者之間的關(guān)系

