将一个字符串数组与多个字符串数组进行比较的算法

时间:2014-07-22 18:33:25

标签: java arrays string algorithm

我正在努力解决当前项目中的这个问题:

我想取一个ArrayList<String>(称之为 A )并将其与很多 ArrayList<String>进行比较,记下有多少个字符串匹配在这些数组比较中。然后,我想按照从最相似到最不相似的A的顺序对多个字符串数组进行排序。

有谁知道这样做的快速算法?不像算法那样寻找代码,但我在Java工作。

谢谢!

2 个答案:

答案 0 :(得分:4)

我的建议:

  1. 首先将引用ArrayList的所有字符串放在Set中。
  2. 遍历其他每个ArrayLists的所有成员,并使用set.contains(string)找出每个数组列表包含的匹配项数。
  3. 对于每个ArrayList,除了该ArrayList的匹配数外,还要创建一个包装ArrayList的对象。
  4. 最后,根据匹配的数量对这些包装器对象进行排序。

答案 1 :(得分:0)

如果要比较字符串之间的相似性(或差异),请尝试编辑距离算法,例如Levenshtein距离算法。

http://en.wikipedia.org/w/index.php?title=Levenshtein_distance