ArrayList 是 Java 一個很常用的物件,而這個物件其實可以就像是 c++ 中的「vector」,可以讓你無窮無盡地增加「物件」陣列長度,而且輕易操作,而相關的操作可以看一下海芋之前寫的「ArrayList 筆記」。
ArrayList 僅能增加「物件」長度,問題來了,並非每個物件都是「Integer」、「Double」這種好判斷的物件,舉例來說,我們要使用的物件,有可能是學生的基本資料,我們想要依學生的年齡做排序,而並非以學生的姓名做排序,這時我們該怎麼做呢?
在解釋怎麼做之前,我們先來建一個「學生資料」的相關物件。
public class StudentData
{
public int ID = 0;
public String Name = null;
public int Age = 0;
}
假設,我們有一個 ArrayList 存的內容是「學生資料」,如下面的範例。
ArrayList m_data = new ArrayList();
再假設,這個 ArrayList 已經有許多筆學生的資料,那麼我們如何以「學生資料中的Age欄位」,來針對這個 ArrayList 做排序呢?答案很簡單,只要在排序時new一個「Comparator」這個元件就好了,而以下為範例程式碼。
Collections.sort(m_data, new Comparator<StudentData>(){
@Override
public int compare(StudentData o1, StudentData o2) {
return o1.Age - o2.Age;
}
});
講到這裡,這個程式已經講解完畢,希望對你有幫助囉!