2015-06-06 20 views
0

我搜索了很多帖子,但是我沒有找到答案。我想通過按值搜索來搜索和訪問集合中的值。我的對象類型是DictionaryWord,有兩個值:String wordint wordUsage(單詞的使用次數)。我想知道哪個收藏會是最快的。如果我寫下「wa」,我想讓它給我例如以這些字母開頭的5個字符串。任何列表或設置可能會太慢,因爲我有100 000個對象。Java集合,按「部分值」進行搜索

我想通過使用它的關鍵值String word及其值int wordUsage來使用HashMap。我甚至可以編寫我自己的hash()函數,以便在散列之後給每個鍵相同的值 - 鍵:「寫入」,散列值:「寫入」。考慮到沒有重複,這是一個好主意,還是應該尋找別的東西?

我的觀點是:如何以及如何搜索具有搜索條件中使用的某些部分值的值。例如寫下「茶」,我發現在「茶」,「老師」,「淚」,「教學」等集合值。

+2

你想看看一個trie:http://en.wikipedia.org/wiki/Trie –

+0

謝謝親切先生!這正是我所期待的。現在進入看看如何使用它:)非常感謝你 – TheGame

+0

可能重複的[Java Hashmap:如何從價值中獲取密鑰?](http://stackoverflow.com/questions/1383797/java-hashmap-how-to-獲取鍵值) – TheCodingFrog

回答

0

我能想到的最快的是二叉搜索樹。我發現非常有幫助,它應該清楚爲什麼樹是最好的選擇。

0

可能需要前綴樹。看看Trie維基頁面瞭解更多信息。