java ArrayList集合中的某個(gè)對(duì)象屬性進(jìn)行排序的實(shí)現(xiàn)代碼
開(kāi)發(fā)中有時(shí)候需要自己封裝分頁(yè)排序時(shí),List如何對(duì)某一屬性排序呢,分享一個(gè)小實(shí)例,大家共勉,希望能對(duì)大家有用,請(qǐng)多多指教。
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中對(duì)象的Int類(lèi)型屬性進(jìn)行排序
/** * 按照List中的某個(gè)Int類(lèi)型的屬性進(jìn)行排序 * @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中對(duì)象的String類(lèi)型的屬性進(jìn)行排序
1)方法一:
/** * 按照List中的某個(gè)String類(lèi)型的屬性進(jìn)行排序 * @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來(lái)實(shí)現(xiàn),用來(lái)執(zhí)行區(qū)分語(yǔ)言環(huán)境的String 比較:
/** * 按照List中的某個(gè)String類(lèi)型的屬性進(jìn)行排序 * @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.測(cè)試排序的方法
@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中的某個(gè)Int類(lèi)型的屬性進(jìn)行排序 sortIntMethod(list); //按照List中的某個(gè)String類(lèi)型的屬性進(jìn)行排序 sortStringMethod(list); }
5.結(jié)果
相關(guān)文章
MybatisPlus如何調(diào)用count函數(shù)
這篇文章主要介紹了MybatisPlus如何調(diào)用count函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Java中如何使用Gson將對(duì)象轉(zhuǎn)換為JSON字符串
這篇文章主要給大家介紹了關(guān)于Java中如何使用Gson將對(duì)象轉(zhuǎn)換為JSON字符串的相關(guān)資料,Gson是Google的一個(gè)開(kāi)源項(xiàng)目,可以將Java對(duì)象轉(zhuǎn)換成JSON,也可能將JSON轉(zhuǎn)換成Java對(duì)象,需要的朋友可以參考下2023-11-11Spring Boot定制type Formatters實(shí)例詳解
在本篇文章里小編給大家整理的是關(guān)于Spring Boot定制type Formatters實(shí)例知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。2019-11-11Java8默認(rèn)方法Default Methods原理及實(shí)例詳解
這篇文章主要介紹了Java8默認(rèn)方法Default Methods原理及實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01jdk21下載、安裝詳細(xì)教程(Windows、Linux、macOS)
本文介紹了OpenJDK 21的下載地址和安裝步驟,包括Windows、Linux和macOS平臺(tái),下載后解壓并設(shè)置環(huán)境變量,最后驗(yàn)證安裝,感興趣的朋友一起看看吧2025-03-03java 輸入一個(gè)數(shù)字組成的數(shù)組(輸出該數(shù)組的最大值和最小值)
這篇文章主要介紹了java 輸入一個(gè)數(shù)字組成的數(shù)組,輸出該數(shù)組的最大值和最小值,需要的朋友可以參考下2017-02-02SpringBoot獲取配置文件內(nèi)容的幾種方式總結(jié)
大家都知道SpringBoot獲取配置文件的方法有很多,下面這篇文章主要給大家介紹了關(guān)于SpringBoot獲取配置文件內(nèi)容的幾種方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02