使用HashMap来存放信息
/* * @Description //main函数 * @Param * @return **/ import java.io.*; import java.util.*; public class HelloServer { public static void main(String[] args) throws IOException { HashMap<Character, Integer> map = new HashMap<>(); File txtFile = new File("C:\\Users\\Administrator\\Desktop\\test.txt"); FileInputStream fr = new FileInputStream(txtFile); InputStreamReader isr = new InputStreamReader(fr); BufferedReader br = new BufferedReader(isr); int len; while ((len = br.read()) != -1) { map.put((char) len, map.get((char) len) == null ? 1 : (map.get((char) len) + 1)); } System.out.println(hashMapSort(map)); } //接收一个HashMap 排序后在返回该HashMap public static HashMap<Character, Integer> hashMapSort(HashMap<Character, Integer> map) { //1、按顺序保存map中的元素,使用LinkedList类型 List<Map.Entry<Character, Integer>> keyList = new LinkedList<Map.Entry<Character, Integer>>(map.entrySet()); //2、按照自定义的规则排序 Collections.sort(keyList, new Comparator<Map.Entry<Character, Integer>>() { @Override public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) { if (o2.getValue().compareTo(o1.getValue()) < 0) { return 1; } else if (o2.getValue().compareTo(o1.getValue()) > 0) { return -1; } else { return 0; } } }); //3、将LinkedList按照排序好的结果,存入到HashMap中 HashMap<Character, Integer> result = new LinkedHashMap<>(); for (Map.Entry<Character, Integer> entry : keyList) { result.put(entry.getKey(), entry.getValue()); } return result; } }