2014-07-22 57 views
5

我有點停留在這一問題在當前項目中我的工作:算法的一個字符串數組比較字符串的許多陣列

我想帶一個ArrayList<String>(稱之爲一個)並將其與許多ArrayList<String>進行比較,記錄這些數組比較中匹配的字符串數。然後,我想按順序從最相似到最不相似的順序排列多個字符串數組。

有沒有人知道任何快速算法來做到這一點?沒有像算法那樣尋找代碼,但我正在使用Java。

謝謝!

+3

什麼是近距離投票的原因?這是如何「要求我們推薦或找到工具,圖書館或最喜歡的非現場資源」? – arshajii

+0

您將使用哈希值,可能以幾種不同的方式。 (實際上,這個問題是一個騙局 - 它每兩週就會被問到一次。) –

+0

哎呀,對不起,重複!找不到問題,但我可能沒有找到正確的地方。謝謝你的幫助! – CatLord

回答

4

我的建議:

  1. 首先把所有的字符串在設定基準的ArrayList。
  2. 查看每個其他ArrayList的所有成員,並使用set.contains(string)查找每個數組列表包含的匹配數。
  3. 對於每個ArrayList,創建一個包裝ArrayList的對象以及該ArrayList的匹配數。
  4. 最後,根據匹配數對這些包裝對象進行排序。
+1

然後讓包裝'ArrayList' + match count的對象實現'Comparable'來對它們進行排序。 –

+0

有道理,謝謝! – CatLord