2013-12-15 80 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)

相关问题