[英]JAVA: Best data structure for document comparison?
我正在编写一个程序,根据它们的共同词比较多个文档。 我能够标记所有单词并将它们全部存储在ArrayList中,因为它允许重复。 但是,我不确定这是最好的方法。 我需要在ArrayList中找到前50个最常用的单词,但我不确定如何做到这一点。 此操作是否有更好的数据结构?
如果您只想比较发生次数,则可以使用诸如HashMap , TreeMap或任何其他实现的地图 。
键将是单词(String),值将是出现的次数(Integer)。 您将遍历文档,并查找地图中的每个单词。 如果存在,则获取其当前出现的次数,并将其增加一。 如果不是,请插入出现次数为零的单词。 这是一个代码片段:
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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.