[英]Counting repeated words in a file
目标:查找文件中所有单词的计数。 文件包含1000多个单词
我的方法:使用HashMap<String,Integer>()
来存储和计算每个单词出现在文件中的次数。
问题: HashMap()
是最好的方法还是更好的方法是使用二叉树来确保更快的查找,因为文件中有大量的单词?
或者有更好的方法吗?
HashMap会导致大量内存开销,这是不希望的。
1000 - 10000字是非常小的。
Hashmap会很好。
所以你在寻找不同的词汇?
我能想到的最有效的结构是Trie
这是一个开源实现: Google Code patricia-trie
虽然我倾向于同意Mitch Wheat - 听起来像HashMap应该可以正常工作(最好避免过早优化......所以你应该使用HashMap,直到你发现它是一个瓶颈)
我建议在Perl / PHP中执行这样的任务。 使用机枪杀死苍蝇非常困难。
HashMap非常完美。 你需要存储
HashMap真的不会存储更多!
假设弦不是很长,迈克尔建议的“Trie”方法会很好。 Trie中的节点可以存储字符以及以该字符结尾的字符串的“计数”。 这应该大大减少存储需求(再次假设字符串均匀分布和重叠)
假设在调用期间不会持续计数,而在使用HashMap时,让Map来自Integer => Integer - 其中“key”是字符串的哈希码并计算计数值。 这应该是一个有效的解决方案 - 快速查找和减少内存占用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.