java中如何實現(xiàn)對類的對象進行排序
我們需要對類按照類中的某一個屬性(或者多個屬性)來對類的對象進行排序,有兩種方法可以實現(xiàn),一種方法是類實現(xiàn)Comparable<T>接口,然后調(diào)用Collections.sort(List)方法進行排序,另一種方法是類不實現(xiàn)Comparable<T>接口,而在排序時使用Collections.sort(List, Comparator<T>)方法,并實現(xiàn)其中的Comparator<T>接口。
先創(chuàng)建一個簡單的學(xué)生類:
public class Student {
private String name;
private int age;
public Student() {}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
1、通過類實現(xiàn)Comparable<T>接口進行排序
public class Student implements Comparable<Student>{
private String name;
private int age;
public Student() {}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
/**
* 將對象按姓名字典序升序排序
* @param o
* @return
*/
@Override
public int compareTo(Student o) {
return this.name.compareTo(o.getName());
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
2、通過在Collections.sort()方法中實現(xiàn)Comparable<T>接口來實現(xiàn)排序
public class Client {
public static void main(String[] args){
List<Student> students = new ArrayList<>();
students.add(new Student("a", 18));
students.add(new Student("c", 19));
students.add(new Student("b", 20));
Collections.sort(students, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.getAge()>o2.getAge()? -1:(o1.getAge()==o2.getAge()? 0:1);
}
});
for(Student student:students){
System.out.println(student.toString());
}
}
}
以上就是java中實現(xiàn)對類的對象進行排序的詳細(xì)內(nèi)容,感謝大家對腳本之家的支持。
相關(guān)文章
SpringBoot項目如何連接MySQL8.0數(shù)據(jù)庫
這篇文章主要介紹了SpringBoot項目如何連接MySQL8.0數(shù)據(jù)庫,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
java多態(tài)實現(xiàn)電子寵物系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java多態(tài)實現(xiàn)電子寵物系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
將List集合中的map對象轉(zhuǎn)為List<對象>形式實例代碼
這篇文章主要介紹了將List集合中的map對象轉(zhuǎn)為List<對象>形式實例代碼,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Spring?Boot?+?EasyExcel實現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出
這篇文章主要介紹了Spring?Boot+EasyExcel實現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08

