ArrayList搜索多个单词

时间:2014-02-10 04:59:23

标签: java

int index = Collections.binarySearch(myList, SearchWord);
System.out.println(myList.get(index));

实际上,我将100万个单词存储到数组列表中,现在我需要通过键搜索特定单词。结果不是一个单词,它可能包含多个单词。

例如假设我输入“A”表示输出是[Aarhus,Aaron,Ababa,...]。结果取决于搜索单词。我怎么能这样做,哪种排序算法最好在集合中。

1 个答案:

答案 0 :(得分:0)

选项:

  1. 如果您想坚持使用数组列表,请在搜索之前对其进行排序。然后找到与您的搜索条件匹配的第一个密钥,并从中向前迭代,直到找到不匹配的密钥。将所有匹配的密钥收集到某个缓冲区结构中。宾果,你有答案。
  2. 将数据结构更改为树。或
    1. 一个简单的二叉树 - 您自动对所有键进行排序。首先以深度方式导航树。直到找到不匹配的密钥。
    2. 一种奇特的结构。通过这种方式,您可以自动对所有按键进行排序,并且由于高效存储,您可以获得显着的性能提升。休息是一样的,导航树,收集匹配的密钥。