TreeMap可以自动排序,HashMap不可以自动排序
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.Map.Entry;
import javax.swing.JOptionPane;
public class CharactorTest {
/**
* @param args
*/
public static void main(String[] args) {
//statWords();
statChar();
}
//统计单词个数
public static void statWords() {
String str = JOptionPane.showInputDialog("输入一段文本");
String[] s = str.split(" ");
Map<String, Integer> aHash = new TreeMap<String, Integer>();
for (int i = 0; i < s.length; i++) {
Integer num = aHash.get(s[i]);
if (num == null)
aHash.put(s[i], 1);
else
aHash.put(s[i], num + 1);
}
printMapByEntry(aHash);
}
//统计字母出现字数
public static void statChar() {
String str = JOptionPane.showInputDialog("输入一段文本");
Map<Character, Integer>bHash = new TreeMap<Character, Integer>();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
Integer num = bHash.get(ch);
if (num == null)
bHash.put(ch, 1);
else
bHash.put(ch, num + 1);
}
printMap2ByEntry(bHash);
}
//打印单词个数调用
public static void printMapByEntry(Map<String, Integer> m) {
Set<Map.Entry<String, Integer>> entrySet = m.entrySet();
for (Map.Entry<String, Integer> ent : entrySet) {
System.out.printf("%s:%d/n", ent.getKey(), ent.getValue());
}
}
//打印字母个数调用
public static void printMap2ByEntry(Map<Character, Integer> m) {
Set<Map.Entry<Character, Integer>> entrySet = m.entrySet();
for (Map.Entry<Character, Integer> ent : entrySet) {
System.out.printf("%s:%d/n", ent.getKey(), ent.getValue());
}
}
}