要對集合進行排序,常用方法是為集合提供比較器。
導入java.util文件.*classstu{//studentclass:tstringname,tintage,tppublicstu(字符串名,整數(shù)){t此名稱=名稱tthis.age=年齡}@覆蓋Tpublicstringtostring(){Tpublicstaticvoid}公共類測試{Tpublicstaticvoid}main(string[]args){ArrayList<Stu>list=newArrayList<Stu>()添加列表(新Stu(“jack”,12))添加列表(新斯圖(“莉莉”,13))添加列表(新斯圖(“露西”,15))添加列表(新Stu(“tom”,11))系統(tǒng)輸出打?。谐觯?對集合排序列表排序(新的比較器<stu>(){//比較器需要實現(xiàn)比較方法@覆蓋T/tpuniversalintcompare(stuO1,stuO2){T/T/treturnO1.age-O2.age//從小到大,如果是O2.age-O1.age,意思是從大到小t系統(tǒng)輸出打印[姓名:杰克年齡:12,姓名:莉莉年齡:13,姓名:露西年齡:15,姓名:湯姆年齡:11][姓名:湯姆年齡:11,姓名:杰克年齡:12,姓名:莉莉年齡:13,姓名:露西年齡:15
問題的主要要求是對列表中的類進行排序。當然,使用排序方法。collection類基本上什么都沒有,它是collection輔助方法的補充(ArrayList、LinkedList都實現(xiàn)了這個接口)。建議看一下源代碼。集合.排序(list,comparator)第一個參數(shù)列表是問題所有者提到的需要排序的列表,第二個參數(shù)列表是comparator類。重寫它。這里有點復雜。它可能涉及匿名類,或者您可以了解更多。jdk8中的lambda函數(shù)也可以實現(xiàn)。