2013-07-02 20 views
0

我想輸入多個人的細節並將它們存儲在不同的對象中。 而且我爲這些對象創建了一個數組,現在我需要按照他們名字的字母順序對它們進行排序。如何根據java中按字母順序排列對象數組[包含名稱,地址等詳細信息]?

+9

讓你'Person'類實現可比'',並呼籲'Arrays.sort(人);' – jlordo

+0

您可以使用比較並使用Arrays.sort(數組,比較器)。嘗試自己做 –

+0

可能重複的[如何排序的結構列表的結構在java中](http://stackoverflow.com/questions/12474113/how按結構排序的結構體列表) – alexisdm

回答

3

做一些東西一樣

Arrays.sort(array, new Comparator<YourObject>(){ 
     @Override 
     public int compare(YourObject o1, YourObject o2){ 
      return o1.getName().compareTo(o2.getName()); 
     } 
}); 
+1

也許它應該是'new Comparator ''而不是'new Comparator ' – johnchen902

+0

是的,我的意圖是對象是陣列中的類型:)編輯 –

+0

@Shiney歡迎您:) –

0

我寫了一個框架,在語言環境敏感的順序對象的自然語言文本表示排序:

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/text/Localizables.html

無論是你的「類人」需要實現Localizable,否則必須通過擴展Localizer來提供PersonLocalizer。

Maven的:

<dependency> 
    <groupId>org.softsmithy.lib</groupId> 
    <artifactId>softsmithy-lib-core</artifactId> 
    <version>0.3</version> 
</dependency> 

下載:

http://sourceforge.net/projects/softsmithy/files/softsmithy/v0.3/

0

實現可比<>接口類,並覆蓋在的compareTo Person類()方法。該方法將Object類作爲傳遞值。例如,

public class Person implements Comparable<Person> { 
    //omitted 

    public int compareTo(Person other) { 
     return name.compareTo(other.name); 
    } } 

請查看以下鏈接瞭解更多http://download.oracle.com/javase/tutorial/collections/interfaces/order.html

+0

由於@jlordo在你的帖子中提到,當你調用Arrays.sort(人員)時,會調用compareTo(Person other)的方法來比較它的名字並自動用接口Comparable對其進行排序

相關問題