JAVA: 文档比较的最佳数据结构?

JAVA: Best data structure for document comparison?

我正在编写一个程序,根据它们的共同词来比较多个文档。我能够标记所有单词并将它们全部存储在 ArrayList 中,因为它允许重复。但是,我不确定这是最好的方法。我需要在 ArrayList 中找到前 50 个最常见的单词,但我不太确定该怎么做。这个操作有没有更好的数据结构?

如果您只想比较出现的次数,可以使用 HashMap, TreeMap, or any other implementation.

等地图

键是单词(字符串),值是出现次数(整数)。您将检查您的文档,并在地图中查找每个单词。如果存在,则获取其当前出现次数,并将其递增 1。如果不是,则插入出现次数为零的单词。这是一个代码片段:

    HashMap<String, Integer> occurenceMap = new HashMap<>();

    for (String word : document) {
        Integer wordOccurences = occurenceMap.get(word);
        if (wordOccurences == null) {
            wordOccurences = Integer.valueOf(1);
        } else {
            wordOccurences += 1;
        }
        occurenceMap.put(word, wordOccurences);
    }