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

时间:2015-01-30 00:27:31

标签: java dictionary arraylist set

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

1 个答案:

答案 0 :(得分:2)

如果您只想比较事件,可以使用HashMapTreeMap或任何other implementation等地图。

键将是单词(String),该值将是出现次数(Integer)。您将查看您的文档,并查找地图中的每个单词。如果存在,则获取其当前出现次数,并将其递增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);
    }