Hashmap sort java
本问题已经有最佳答案,请猛点这里访问。
我想输入一些文本,将字母分开,然后用键->文本的唯一字母和值->重复字母的个数制作一个哈希图。如何按降序对哈希图的值排序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; public class Menu { public static void main(String args[]){ String text = null; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Please enter some text:"); try { text = br.readLine(); } catch (IOException e) { e.printStackTrace(); } HashMap<Character, Integer> map = new HashMap(); String UpperCase = text.toUpperCase(); for (int i = 0;i < UpperCase.length(); i++){ Character currentChar = UpperCase.charAt(i); if(map.get(currentChar) == null){ map.put(currentChar, 1); } else { map.put(currentChar, map.get(currentChar) + 1); } } for (Character name: map.keySet()){ String key = name.toString(); String value = map.get(name).toString(); System.out.println(key +"" + value); } } } |
将地图转换为
然后使用
或者,不将整数存储为映射的值,而是存储characterOccurrence的实例:
1 2 3 4 5 | public class CharacterOccurrence { private char character; private int count; ... } |
号
然后根据映射的值创建一个列表,并对该列表进行排序。