2013-12-15 77 views
0
PhoneBookCollection phoneBook = new PhoneBookCollection(); 

我有一個ArrayListPhoneBook對象。 (該getCollection方法返回列表)如何對字符串ArrayList中的元素進行排序?

ArrayList<PhoneBook> list = phoneBook.getCollection(); 


我然後遍歷我的ArrayList和獲得PhoneBook在第i個索引,並獲得其相應的Telephone

for(int i = 0; i < list.size(); i++){ 

String phone = phoneBook.getPhoneBook(i).getTelephone(); 

} 

我希望能夠現在要做的排序是按升序排列的getTelephone對象。 我知道ArrayLists沒有排序方法,所以我在做這件事時遇到了一些麻煩。

+0

1)爲了更好地幫助越早,張貼[SSCCE](http://sscce.org/)。 2)請不要忘記添加'?'提問!有些人在頁面中搜索'?'如果'問題'中不存在,則直接進入下一個(實際)問題。 –

+0

假設你的電話簿沒有通過電話號碼進行比較,你可以寫一個'PhoneBookComparator'並使用'Collections.sort()'。 –

回答

0

您可以使用java.util.Collections類對列表進行排序。使用Collections.sort()。

2

您可以創建一個實現Comparator類:

public class CustomComparator implements Comparator<PhoneBook> { // Replace PhoneBook with the appropriate 
    @Override 
    public int compare(PhoneBook t1, PhoneBook t2) { 
     return t1.getNumber().compareTo(t2.getNumber()); // Here compare the telephone numbers 
    } 
} 

那麼做到這一點:

Collections.sort(list, new CustomComparator()); 
+0

我理解你比較2個電話號碼的部分,但我應該在哪裏做'Collections.sort(list,new CustomComparator());'? –

+0

它取決於**當**和**哪裏**你想排序你的'ArrayList'。 – Christian

+0

我只想對電話號碼進行排序,而不是整個'ArrayList'作爲'PhoneBook'對象存儲其他屬性,例如名稱,地址等... –

0

java.util.Collections

String類最好將使用非標準的方式有方法compareTo()和將自動分類:

Collections.sort(nameOfList)

相關問題