在網頁上找到的單詞並將它們與它們的出現次數進行映射後,如何按頻率(從最高到最低)對它們進行排序?排序沒有比較器,陣列列表或樹集的地圖
我有權訪問的唯一導入是數組,HashMap,HashSet,Map和Set。我研究瞭如何做到這一點,但似乎大多數人都建議使用比較器或迭代器,我不想實現它們。
該地圖設置如下:Map found = new HashMap <>();
這是我到目前爲止有:
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import util.WebDoc;
public class Sorting{
public static void main(String[] args) throws IOException {
String url;
url = 「INSERT URL HERE」;
final int numPairs = 30; // maximum number of pairs to print
// get body of the web document
String content = WebDoc.getBodyContent(url);
String word_pattern = "[A-Za-z]{5,}";
Map<String, Integer> found = new HashMap<>(); // (word,frequency)
Matcher match = Pattern.compile(word_pattern).matcher(content);
int unique = 0;
while (match.find()) {
String word = match.group().toLowerCase();
System.out.println(word);
if (found.containsKey(word)){
if (found.get(word)==1)
unique--;
found.put(word, found.get(word) +1);
}
else{
found.put(word, 1);
unique++;
}
}
}
你確定你不是[保羅](http://stackoverflow.com/q/36871699/1553851)? – shmosel
*「...大多數人建議使用比較器或迭代器......」* - 有一個原因 - *「......我不想實現。」* - 爲什麼不呢? – azurefrog
如果有人想讓你的代碼沒有迭代器,他們要麼是巨魔,要麼他們不知道迭代器是什麼。 – shmosel