我正在编写一个严格读取文本文件(.txt)的java应用程序.这些文件最多可包含120,000个单词.
该应用程序需要存储所有+120,000字.它需要将它们命名为word_1,word_2等.它还需要访问这些单词以对它们执行各种方法.
这些方法都与字符串有关.例如,将调用一个方法来说明word_80中有多少个字母.将调用另一种方法来说明word_2200中的特定字母.
另外,有些方法会比较两个单词.例如,将调用一个方法来将word_80与word_2200进行比较,并且需要返回具有更多字母的方法.将调用另一种方法将word_80与word_2200进行比较,并且需要返回两个单词共享的特定字母.
我的问题是:由于我几乎只使用Strings,最好将这些单词存储在一个大型ArrayList中吗?几个小的ArrayLists?或者我应该使用其他许多存储可能性之一,如Vectors,HashSets,LinkedLists?
我的两个主要问题是1.)访问速度,以及2.)拥有尽可能多的预先构建的方法.
提前谢谢你的帮助!!
哇!感谢大家对我的问题做出如此快速的回应.你的所有建议都对我帮助很大.我正在思考并考虑您的反馈中提供的所有选项.
请原谅我的任何模糊性; 让我来解答你的问题:
Q)英语?
A)文本文件实际上是用英文书写的.用第二语言出现一个单词很少见 - 但并非不可能.我将文本文件中非英语单词的百分比设为.0001%
Q)家庭作业?
A)我现在正在微笑地看着我的问题的措辞.是的,它确实类似于学校作业.但不,这不是功课.
Q)重复?
A)是的.可能每五个左右的单词,考虑连词,文章等.
问)访问?
A)随机和顺序.当然,一种方法可以随机定位一个单词.同样可能一种方法想要在word_1和word_120000之间顺序查找匹配的单词.这导致了最后一个问题......
Q)迭代整个列表?
A)是的.
此外,我计划发展这个程序,以执行许多其他方法.我为我的模糊性再次道歉.(细节确实让世界变得与众不同,不是吗?)
干杯!