当前位置:  开发笔记 > 编程语言 > 正文

在java中存储和访问120,000个单词的最佳方法

如何解决《在java中存储和访问120,000个单词的最佳方法》经验,为你挑选了1个好方法。

我正在编写一个严格读取文本文件(.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)是的.

此外,我计划发展这个程序,以执行许多其他方法.我为我的模糊性再次道歉.(细节确实让世界变得与众不同,不是吗?)

干杯!



1> paxdiablo..:

我会将它们存储在一个大型ArrayList中,并担心(可能不必要的)优化.

由于本身就是懒惰,我认为优化并不是一个好主意,除非有明确的需求.否则,你只是浪费精力,可以更好地在其他地方度过.

事实上,如果你可以设置字数的上限而你不需要任何奇特的List操作,我会选择一个普通(本机)字符串对象数组,其中一个整数保存实际数字.这可能比基于类的方法更快.

这为您提供了访问各个元素的最快速度,同时仍然保留了执行所有精彩字符串操作的能力.

注意我没有针对ArrayLists对本机数组进行基准测试.它们可能和本机阵列一样快,所以你应该自己检查一下,如果你对我的能力的盲目信心比我少:-).

如果它们确实变得同样快(甚至接近),那么增加的好处(可扩展性,对于一个)可能足以证明它们的使用是合理的.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有