我创建了一个哈希图来存储多个文件中出现的单词,例如 10,000 个文本文件。然后我想从 hashmap 中对它们进行排序并打印前 10 个单词。Hashmap 定义为,
Hashtable <String, Integer> problem1Counter = new Hashtable<String, Integer> ();
当我将文件保持在 1000 左右时,我能够使用这样的简单排序获得前十个单词,
String[] keysProblem1 = (String[]) problem1Counter.keySet().toArray(new String[0]);
Integer [] valuesProblem1 = (Integer[])problem1Counter.values().toArray(new Integer[problem1Counter.size()]);
诠释 kk = 0; 字符串 ii = null;
for (int jj = 0; jj < valuesProblem1.length ; jj++){
for (int bb = 0; bb < valuesProblem1.length; bb++){
if(valuesProblem1[jj] < valuesProblem1[bb]){
kk = valuesProblem1[jj];
ii = keysProblem1[jj];
valuesProblem1[jj] = valuesProblem1[bb];
keysProblem1[jj] = keysProblem1[bb];
valuesProblem1 [bb] = kk;
keysProblem1 [bb] = ii;}}}
因此,当 hashtable 的值超过 553685 时,上述方法不起作用。那么任何人都可以建议并展示一种更好的方法来对它们进行排序吗?我是 java 的新手,但曾在 actionscript 中工作过,所以我有点舒服。谢谢。