在列表中按字母顺序排序姓名?

9

你能帮忙将列表按字母顺序排序吗?

我的代码:

emailList.add(contact.getUserName());                               
String[] emails = new String[emailList.size()];
emailList.toArray(emails);
namesList.add(name);

Collections.sort(emailList, new Comparator() {
    public int compare(Object o1, Object o2) {
        String name1 = (String) o1;
        String name2 = (String) o2;
        return name1.compareToIgnoreCase(name2);
    }
});

System.out.println("namesList.toString() = " + namesList.toString());
1个回答

34

您不需要创建一个新的比较器。只需调用Collections.sort(emailList);即可。

更新:

Collections.sort(emailList, new Comparator<String>()
{
    @Override
    public int compare(String text1, String text2)
    {
        return text1.compareToIgnoreCase(text2);
    }
});

如果比较需要不区分大小写,那么默认的比较器就无法工作。 - cHao
2
如果您正在使用该项集来填充ListView,请不要忘记执行listAdapter.notifyDataSetChanged();以更新UI。 - AlvaroSantisteban

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接