废话不多说,先做个笔记
ConvertPinyin是一个将汉字转换成拼音的类,自行百度吧。
取拼音的首字母当做map的key,先从map取值,在值的后面拼接一个分隔符,再接上汉字,覆盖掉map里面同一个键的值
private void initData() {
String name[]={"信升","卓贤","帆枫","龙家","信浩 "};
Map<String,String> map=new HashMap<>();
for(int i=0;i<name.length;i++) {
StringBuffer sb=new StringBuffer();
//取汉字首字母当做key
String firstLetter = ConvertPinyin.getPinYin(name[i]).substring(0,1);
//根据key取出map的值,拼接一个分隔符,再接上汉字
sb.append(map.get(firstLetter)+","+name[i]);
//使用同一个key存入到map集合中
map.put(firstLetter,sb.toString());
}
}
获得一个Map对象后,再根据字母顺序循环遍历map取出值,使用split()方法分割字符串,将得到的字符串存入集合中,按字母排序完成。代码是不是很简单?