我有一個有序的列表(一本字典 - 100K字)和許多單詞頻繁地在這個列表上。所以性能是一個問題。我知道HashSet.contains(theWord)或Collections.binarySearch(sortedList,theWord)非常快。但我實際上並沒有在尋找整個詞彙。快速字符串搜索像startsWith()不等於()
我想要的是讓我們說搜索「se」並獲取所有的單詞以「se」開頭。那麼在Java或任何庫中是否有可用的解決方案?
一個更好的例子:在排序的列表以下操作
List.subList(字符串的beginIndex,字符串endIndex的)//返回的間隔
myWordList.subList(「AB」一個快速解決方案, 「公元前」);
注意:這是一個非常類似的問題,但接受的答案並不令人滿意。 Overriding HashSet's Contains Method
是否有任何流行的庫提供的實現? – 2011-11-24 16:26:42
這一個?聲稱它已被貢獻給Apache Commons Collections和Google Collections,但快速查看ACC並未在Javadoc中顯示它。 http://code.google.com/p/patricia-trie/ – 2011-11-24 23:19:23
是的確切..我也無法弄清楚這就是爲什麼問你。 – 2011-11-25 05:58:08