跳到正文
Pollex's blog
返回

自定义数据结构排序(字符串排序)

目录

在很多情况下,我们都会用到对自定义数据结构的排序,而最多的实际排序依据是对字符串的排序。

举个例子:

联系人排序,contacts是一个我们自己定义的数据结构,里面有两个参数,nametel,我们要根据name的拼音排序,首先要把汉字转成拼音,然后根据拼音进行排序。

第一步: 汉字转拼音

资料(第二种方法貌似对”亳州”的”亳”识别有误): java程序将汉字转成拼音的两种方法

第二步: 根据拼音对数据结构排序

首先需要给数据结构制作一个比较的工具类:

public class PinyinComparator implements Comparator<ContactsEntry> {

    public int compare(ContactsEntry o1, ContactsEntry o2) {
        if (o1.getSort_key().equals("@")
                || o2.getSort_key().equals("#")) {
            return -1;
        } else if (o1.getSort_key().equals("#")
                || o2.getSort_key().equals("@")) {
            return 1;
        } else {
            return o1.getSort_key().compareTo(o2.getSort_key());
        }
    }
}

然后通过Collections的sort方法来排序:

Collections.sort(mCities, mComparator);

这样mCities里面的数据就根据PinyinComparator的排序规则排序了。


分享这篇文章:

上一篇
Compilation is not supported for following modules:app
下一篇
EditText的输入限制(InputType、digits)