首先,先将字符串重复次数放入map中,然后再对map根据值进行排序。
例:
//将List中每个元素的重复次数放入map中
2,将Map进行排序
3,进行调用
例:
//将List中每个元素的重复次数放入map中
public static Map testSplit(List list){
int mapinI = 1;
String firString= null;
if(list.size()>=1){
firString =list.get(0).toString();
map.put(firString,mapinI);
list.remove(0);
}
int i= 0;
for( ;i<list.size();i++) {
String falgString = list.get(i).toString();
if(falgString.equals(firString)){
// 加了后去掉
mapinI=mapinI+1;
map.put(firString,mapinI);
list.remove(i);
i=-1;
}
}
if(list.size()>=1){
// 递归
testSplit(list);
}
return map ;
}
2,将Map进行排序
//对map进行排序(根据value)
public static ArrayList<Map.Entry<String,Integer>> sorMap(Map map){
ArrayList<Map.Entry<String,Integer>> entries = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
Collections. sort(entries , new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return (o2.getValue() - o1.getValue());
}
});
return entries;
}
3,进行调用
public static void main(String[] args) {
List<String> list= new ArrayList<String>();
list=getList(); //获取List
Map cache=testSplit(list);
ArrayList<Map.Entry<String,Integer>> entries = sorMap(cache);
for(Map.Entry<String,Integer> e : entries) {
System. out.println(e.getKey() + ":" + e.getValue());
}
}