2010-12-23 83 views
3

可能重複:
Sort List Alphabetically爪哇 - 按字母順序(名單)

我如何將輸入存儲按字母順序排列,我輸入的名稱到一個ArrayList:

persons.add(person); 

如何做到這一點?

+0

只需使用收集的分類方法,其中傳遞的人員名單。 – 2010-12-23 13:13:22

+0

爲什麼你們不做家庭作業?一起來吧:http://stackoverflow.com/questions/1946668/sorting-using-comparator-descending-order-user-defined-classes。它被稱爲社交活動:) – 2010-12-23 13:20:52

回答

5

試試這個:

java.util.Collections.sort(people); 
0

使用TreeSet的,而不是ArrayList的

+1

不,事情是我必須使用ArrayList,因爲我必須學習它。 – Jake 2010-12-23 13:09:11

5
Collection<Person> listPeople = new ArrayList<Person>(); 

類Person.java將實現可比

public class Person implements Comparable<Person>{ 

public int compareTo(Person person) { 
    if(this.name != null && person.name != null){ 
    return this.name.compareToIgnoreCase(person.name); 
    } 
    return 0; 
} 

} 

一旦你有了這個,在你類'添加人員,當你完成添加時,輸入:

Collections.sort(listPeople); 
9

實現Comparator<T>接口

class A implements Comparator <Person> { 

    @Override 
    public int compare(Person o1, Person o2) { 
     if(o1.getName() != null && o2.getName() != null){ 
      return o1.getName().compareTo(o2.getName()); 
     } 

     return 0; 
    } 

} 

然後用Collections.sort(/* list here */, /* comparator here*/)