/**
*@Author:xyl
*@Date: 2019/8/24 16:47
*@Description: 名字首字母排序
*/
public static Map> sort(List list){
Map> rtMap = new HashMap<>();
Map> result=new LinkedHashMap();
for (String s : list) {
char[] arr = s.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
if (arr[0] > 128) {
try {
String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[0], defaultFormat);
if (temp != null) {
if (rtMap.containsKey(String.valueOf(temp[0].charAt(0)))) {
rtMap.get(String.valueOf(temp[0].charAt(0))).add(s);
} else {
List li=new ArrayList<>();
li.add(s);
rtMap.put(String.valueOf(temp[0].charAt(0)), li);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
if (rtMap.containsKey(String.valueOf(arr[0]))) {
rtMap.get(String.valueOf(arr[0])).add(s);
} else {
List li=new ArrayList<>();
li.add(s);
rtMap.put(String.valueOf(arr[0]), li);
}
}
result =rtMap.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
}
return result;
}