// 获取字符串 出现次数最多的字符
public static HashMap<String,Integer> formateLunarDate(String tar) {
String[] split = tar.split(",");
HashMap<String,Integer> hashMap = new HashMap<String, Integer>();
hashMap.put(split[0], 1);
for (int i = 1; i < split.length; i++) {
Integer integer = hashMap.get(split[i]);
if(integer == null || integer == 0) {
hashMap.put(split[i], 1);
}
else {
hashMap.put(split[i], integer + 1);
}
}
return hashMap;
}
HashMap<String,Integer> beforeLunarDateList = formateLunarDate("腊月,腊月,五月,三月,八月,正月,冬月,腊月,腊月,三月,冬月,二月,八月,腊月,二月,冬月,冬月,腊月");
List<Map.Entry<String, Integer>> afterLunarDateList = new ArrayList<Map.Entry<String,Integer>>(beforeLunarDateList.entrySet());
Collections.sort(afterLunarDateList, new Comparator<Map.Entry<String,Integer>>() {
/**
* @return 根据次数由高到低排序
*/
@Override
public int compare(Map.Entry<String,Integer> firstMapEntry,Map.Entry<String,Integer> secondMapEntry) {
return secondMapEntry.getValue().compareTo(firstMapEntry.getValue());
}
});
System.out.println("排序前的顺序:"+beforeLunarDateList);
System.out.println("排序后的顺序:"+afterLunarDateList);
String lunareDates = "";
for (int i = 0; i < 3; i++) {
lunareDates += afterLunarDateList.get(i).getKey()+',';
}
lunareDates = lunareDates.substring(0,lunareDates.length() - 1);
System.out.println("取最多的三个月:"+lunareDates);
结果展示: