java ArrayList集合中的某個對象屬性進行排序的實現(xiàn)代碼
開發(fā)中有時候需要自己封裝分頁排序時,List如何對某一屬性排序呢,分享一個小實例,大家共勉,希望能對大家有用,請多多指教。
1.Student的Bean如下:
public class Student { private int age; private String name; private String weight; public String getWeight() { return weight; } public void setWeight(String weight) { this.weight = weight; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
2.按照List中對象的Int類型屬性進行排序
/** * 按照List中的某個Int類型的屬性進行排序 * @param list */ @SuppressWarnings("unchecked") public static void sortIntMethod(List list){ Collections.sort(list, new Comparator(){ @Override public int compare(Object o1, Object o2) { Student stu1=(Student)o1; Student stu2=(Student)o2; if(stu1.getAge()>stu2.getAge()){ return 1; }else if(stu1.getAge()==stu2.getAge()){ return 0; }else{ return -1; } } }); System.out.println("http://///////////排序之后///////////////"); for(int i=0;i<list.size();i++){ Student st=(Student)list.get(i); System.out.println("st.age="+st.getAge()+",st.name="+st.getName()); } }
3.按照List中對象的String類型的屬性進行排序
1)方法一:
/** * 按照List中的某個String類型的屬性進行排序 * @param list */ @SuppressWarnings("unchecked") public static void sortStringMethod(List list){ Collections.sort(list, new Comparator(){ @Override public int compare(Object o1, Object o2) { Student stu1=(Student)o1; Student stu2=(Student)o2; return stu1.getName().compareTo(stu2.getName()); } }); System.out.println("http://///////////排序之后///////////////"); for(int i=0;i<list.size();i++){ Student st=(Student)list.get(i); System.out.println("st.age="+st.getAge()+",st.name="+st.getName()); } }
2)方法二:
使用java.text.RuleBasedCollator來實現(xiàn),用來執(zhí)行區(qū)分語言環(huán)境的String 比較:
/** * 按照List中的某個String類型的屬性進行排序 * @param list */ @SuppressWarnings("unchecked") public static void sortByRuleBasedCollator(List list){ Collections.sort(list, new Comparator(){ @Override public int compare(Object o1, Object o2) { return ((java.text.RuleBasedCollator)java.text.Collator.getInstance(java.util.Locale.CHINA)).compare(((Student)o1).getName(), ((Student)o2).getName()); } }); System.out.println("http://///////////排序之后///////////////"); for(int i=0;i<list.size();i++){ Student st=(Student)list.get(i); System.out.println("st.age="+st.getAge()+",st.name="+st.getName()); } }
4.測試排序的方法
@SuppressWarnings("unchecked") public static void main(String[] args) { ArrayList list=new ArrayList(); Student t1=new Student(); t1.setAge(35); t1.setName("wanglei"); list.add(t1); Student t2=new Student(); t2.setAge(4); t2.setName("lisi"); list.add(t2); Student t3=new Student(); t3.setAge(56); t3.setName("zhonghua"); list.add(t3); Student t4=new Student(); t4.setAge(39); t4.setName("waanglei"); list.add(t4); System.out.println("http://///////////排序之前///////////////"); for(int i=0;i<list.size();i++){ Student st=(Student)list.get(i); System.out.println("st.age="+st.getAge()+",st.name="+st.getName()); } //按照List中的某個Int類型的屬性進行排序 sortIntMethod(list); //按照List中的某個String類型的屬性進行排序 sortStringMethod(list); }
5.結(jié)果
相關(guān)文章
MybatisPlus如何調(diào)用count函數(shù)
這篇文章主要介紹了MybatisPlus如何調(diào)用count函數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08Java中如何使用Gson將對象轉(zhuǎn)換為JSON字符串
這篇文章主要給大家介紹了關(guān)于Java中如何使用Gson將對象轉(zhuǎn)換為JSON字符串的相關(guān)資料,Gson是Google的一個開源項目,可以將Java對象轉(zhuǎn)換成JSON,也可能將JSON轉(zhuǎn)換成Java對象,需要的朋友可以參考下2023-11-11Spring Boot定制type Formatters實例詳解
在本篇文章里小編給大家整理的是關(guān)于Spring Boot定制type Formatters實例知識點,需要的朋友們學(xué)習(xí)下。2019-11-11Java8默認方法Default Methods原理及實例詳解
這篇文章主要介紹了Java8默認方法Default Methods原理及實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01jdk21下載、安裝詳細教程(Windows、Linux、macOS)
本文介紹了OpenJDK 21的下載地址和安裝步驟,包括Windows、Linux和macOS平臺,下載后解壓并設(shè)置環(huán)境變量,最后驗證安裝,感興趣的朋友一起看看吧2025-03-03java 輸入一個數(shù)字組成的數(shù)組(輸出該數(shù)組的最大值和最小值)
這篇文章主要介紹了java 輸入一個數(shù)字組成的數(shù)組,輸出該數(shù)組的最大值和最小值,需要的朋友可以參考下2017-02-02SpringBoot獲取配置文件內(nèi)容的幾種方式總結(jié)
大家都知道SpringBoot獲取配置文件的方法有很多,下面這篇文章主要給大家介紹了關(guān)于SpringBoot獲取配置文件內(nèi)容的幾種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02