注:JDK要使用1.8以上的
package com.lyl.it;
import static com.lyl.it.Common.getValueComparator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class TestTreeMap {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("aa");
list.add("vv");
list.add("bb");
list.add("nn");
list.add("cc");
list.add("mm");
list.add("aa");
list.add("nn");
list.add("aa");
list.add("aa");
list.add("aa");
list.add("nn");
TreeMap<String,Integer> couter = new TreeMap<String, Integer>();
for (int i = 0; i < list.size(); i++) {
String word =list.get(i);
int count = couter.getOrDefault(word,0) + 1;
couter.put(word, count);
}
List<Map.Entry<String, Integer>> listCounter = new ArrayList<Map.Entry<String,Integer>>(couter.entrySet());
Collections.sort(listCounter,getValueComparator());
for (int i = 0; i < listCounter.size(); i++) {
System.out.println(listCounter.get(i));
}
}
}
package com.lyl.it;
import java.util.Comparator;
import java.util.Map;
public class Common {
public static Comparator<Map.Entry<String, Integer>> getValueComparator(){
// 降低序比较器
Comparator<Map.Entry<String, Integer>> valueComparator = new Comparator<Map.Entry<String,Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1,Map.Entry<String, Integer> o2) {
return o2.getValue() - o1.getValue();
}
};
return valueComparator;
}
}
运行的结果如下:
aa=5
nn=3
bb=1
cc=1
mm=1
vv=1