【发布时间】:2014-10-07 19:29:58
【问题描述】:
我想输入一些文本,将字母分开,然后用键制作一个哈希图->文本和值的唯一字母->重复字母的数量。如何按降序对哈希图的值进行排序。
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);
}
}
}
【问题讨论】:
-
HashMap不是排序图。请改用SortedMap的实现(例如TreeMap)。 -
@Jesper 他想按值排序,而不是键。
标签: java