Map记录文段文字的出现的次数,以及对文字出现的次数降序输出
package com.hw.test02;
import java.util.*;
public class Test {
public static void main(String[] args) {
System.out.println("请输入文本:");
Scanner input = new Scanner(System.in);
String str = input.next();
Map map = new LinkedHashMap();
for (int i = 0; i < str.length(); i++) {
if (map.containsKey(str.charAt(i))) {
//拿对应的到值
int val = (int) map.get(str.charAt(i));
val++;
map.put(str.charAt(i), val);
} else {
map.put(str.charAt(i), 1);
}
}
System.out.println(map);
System.out.println("-------(list)-------");
List<Map.Entry<Character, Integer>> list = new ArrayList<>(map.entrySet());
System.out.println(list);
System.out.println("-------(排序)-------");
list.sort(new Comparator<Map.Entry<Character, Integer>>() {
@Override
public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
if (o1.getValue() > o2.getValue()) {
return -1;
} else if (o1.getValue() < o2.getValue()) {
return 1;
} else {
return 0;
}
}
});
System.out.println(list);
}
}