java根據(jù)List內對象的屬性排序方法
更新時間:2018年01月03日 14:36:25 作者:Clannad_汐
下面小編就為大家分享一篇java根據(jù)List內對象的屬性排序方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
方法一:實現(xiàn)Comparator接口,并重寫compare方法
實體類代碼:
import java.util.Comparator;
/**
* 學生類 方法一
* 實現(xiàn)Comparator接口
* 并重寫compare方法
* @author liaot
*
*/
public class Student implements Comparator<Student>{
private String name; //姓名
private int age; //年齡
//重寫 比較方法 本次例子定義為按年齡比較
@Override
public int compare(Student o1, Student o2) {
if(o1.getAge() > o2.getAge()){
return 1;
}else{
return -1;
}
}
public Student(String name, int age) {
super();
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;
}
}
測試類:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
//初始化四個不同的學生
Student stu1 = new Student("路人甲", 20);
Student stu2 = new Student("路人已", 18);
Student stu3 = new Student("路人丙", 16);
Student stu4 = new Student("路人丁", 19);
//新建List把學生加進List
List<Student> stuList = new ArrayList<>();
stuList.add(stu1);
stuList.add(stu2);
stuList.add(stu3);
stuList.add(stu4);
System.out.println("排序前:=====");
for(Student stu :stuList){
System.out.println("姓名:"+stu.getName() +" 年齡"+stu.getAge());
}
//排序
Collections.sort(stuList, stu1); //第一個參數(shù)為List 第二個參數(shù)為對象的一個實例
System.out.println("排序后:=====");
for(Student stu :stuList){
System.out.println("姓名:"+stu.getName() +" 年齡"+stu.getAge());
}
}
}
運行結果:

方法二:實現(xiàn)Comparable接口 并重寫compareTo方法
/**
* 學生類 方法二 實現(xiàn)Comparable接口 并重寫compareTo方法
*
* @author liaot
*
*/
public class Student2 implements Comparable<Student2> {
private String name; // 姓名
private int age; // 年齡
// 重寫 比較方法 本次例子定義為按年齡比較
@Override
public int compareTo(Student2 stu) {
if (this.age > stu.getAge()) {
return 1;
} else {
return -1;
}
}
public Student2(String name, int age) {
super();
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;
}
}
測試類
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main2 {
public static void main(String[] args) {
//初始化四個不同的學生
Student2 stu1 = new Student2("路人甲", 20);
Student2 stu2 = new Student2("路人已", 18);
Student2 stu3 = new Student2("路人丙", 16);
Student2 stu4 = new Student2("路人丁", 19);
//新建List把學生加進List
List<Student2> stuList = new ArrayList<>();
stuList.add(stu1);
stuList.add(stu2);
stuList.add(stu3);
stuList.add(stu4);
System.out.println("排序前:=====");
for(Student2 stu :stuList){
System.out.println("姓名:"+stu.getName() +" 年齡"+stu.getAge());
}
//排序
Collections.sort(stuList); //只有一個參數(shù)參數(shù)為List
System.out.println("排序后:=====");
for(Student2 stu :stuList){
System.out.println("姓名:"+stu.getName() +" 年齡"+stu.getAge());
}
}
}
運行結果

三、總結:兩種方式寫法和用法上的區(qū)別:

以上這篇java根據(jù)List內對象的屬性排序方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決報錯:java.lang.IllegalStateException: Failed to&nb
在項目開發(fā)中,可能會遇到Elasticsearch啟動報錯的問題,原因可能包括版本不一致、端口配置錯誤、配置文件不匹配及服務未啟動等,解決方法包括檢查進程、重啟服務等,這些經驗可以幫助開發(fā)者快速定位問題并解決,保證項目順利運行2024-10-10
Spring Data MongoDB 數(shù)據(jù)庫批量操作的方法
在項目開發(fā)中經常會批量插入數(shù)據(jù)和更新數(shù)據(jù)的操作,這篇文章主要介紹了Spring Data MongoDB 數(shù)據(jù)庫批量操作的方法,非常具有實用價值,需要的朋友可以參考下2018-11-11
springboot+vue制作后臺管理系統(tǒng)項目
本文詳細介紹了后臺管理使用springboot+vue制作,以分步驟、圖文的形式詳細講解,大家有需要的可以參考參考2021-08-08
IDEA教程創(chuàng)建SpringBoot前后端分離項目示例圖解
在使用spring、mybatis等框架時,配置文件很復雜,有時復雜的讓人想放棄Java,使用C#。springboot出現(xiàn)這一切問題就都不是問題2021-10-10

