存储和访问数组中字符串的最快方法

时间:2014-11-19 16:22:35

标签: java arrays hash hash-function

我知道我可以通过这样的for循环(参见代码),我也可以以相同的方式添加到数组,但有更快的方法。我不想使用任何其他Java API,因为我想练习数组。使用哈希函数是否允许我更快地存储我的变量,然后更快地找到某个单词?

编辑:问题是当使用10,000+个单词时,延迟增加大于1ms

谢谢:)

int count = 0;
for(int i = 0; i < array.length; i++)
    if(array[i].equals(word)) 
        count++;

3 个答案:

答案 0 :(得分:1)

您可以使用二维数组:

数组[字母] [以该字母开头的单词]

答案 1 :(得分:1)

您可以预先对数组进行排序,然后对其进行二进制搜索。只有在寻找许多单词时,这才有用。

如果您允许其他结构,那么通常可以实现O(1)查找时间。

答案 2 :(得分:0)

每当您处理10,000字时,您可能会遇到一些延迟。根据设置的单词,您可以更好地过滤,但只要您的代码显示这是最好的方法。