一 导入 pinyin4j-2.5.0.jar包 地址http://pinyin4j.sourceforge.net/
这个包是将汉字转化成拼音的工具包
二 自定义数据比较器Comparator
Contects是联系人类
import net.sourceforge.pinyin4j.PinyinHelper; import java.util.Comparator; /** * 对联系人 Contacts的name 的拼音排序 * Created by zsg on 2016/5/5. */ public class ComparatorPinYin implements Comparator<Contacts> { private String ToPinYinString(Contacts contacts){ String str=contacts.getName(); StringBuilder sb=new StringBuilder(); String[] arr=null; for(int i=0;i<str.length();i++){ arr= PinyinHelper.toHanyuPinyinStringArray(str.charAt(i)); if(arr!=null && arr.length>0){ for (String string : arr) { sb.append(string); } } } return sb.toString(); } @Override public int compare(Contacts lhs, Contacts rhs) { return ToPinYinString(lhs).compareTo(ToPinYinString(rhs)); } }
三 排序数组
ArrayList<Contacts> contactData=new ArrayList<>(); contactData.add(new Contacts("张三","13866665555")); contactData.add(new Contacts("李四","13866665555")); contactData.add(new Contacts("赵六","13866665555")); contactData.add(new Contacts("哔哔","13866665555")); Collections.sort(contactData,new ComparatorPinYin());