随着时间的推移,Java访问arraylist中的元素会变慢

0 java android arraylist

我有一些代码,我注意到迭代通过ArrayList的进度随着时间的推移变得非常慢.似乎导致问题的代码如下:

public boolean isWordOfficial(String word){
    return this.wordList.get(this.stringWordList.indexOf(word)).isWordOfficial();
}
Run Code Online (Sandbox Code Playgroud)

在访问两个arraylists方面,我不知道这些代码有什么问题吗?

Tim*_*sen 6

我并不确切地说,为什么,或者你的ArrayList性能变得太慢,但是从快速浏览一下您的用例,您正在执行以下操作:

  • 给定一个String word,查找它stringWordList,并返回数字索引
  • 查找wordList此索引中包含的单词并返回它

这种使用模式最好由a提供Map,其中键是输入word,可能对应于一个条目stringWordList,输出另一个单词,来自wordList.

O(1)O(N)列表中的查找相比,地图查找将是一个操作.