【发布时间】:2015-11-15 02:23:23
【问题描述】:
我不得不比较两个或多个 Set like List'' l1,List l2,List l3 ...,但是如何比较它们呢?
在我看来,首先是 Collections.sort(list),然后是 l1.euqals(l2),依此类推... 但是好像不是有效的方法,花费大约O(n^2),而且没有两个List,可能是三个四个甚至更多...
Anthoer Way 使用了额外的最大数组 A 初始化零,首先 A[l1.get(i)] 用非零数字填充,然后 A[l2.get(i)] 用零填充,最后,如果数组 A 仍然充满零,则两个列表相等。而且它的成本是 O(n),但麻烦的不仅仅是两个 List...
有没有什么快速有效的方法,而且时间成本更低? 我希望我能清楚地表达我的想法。Hope ans!
【问题讨论】:
-
Set#equals()在 Java 中没有考虑元素的顺序,因此不需要排序。 -
@JordiCastilla 这个问题大约是 n > 2 套,这与您发布的链接中的问题不同(比较 两个 套)。
-
@JordiCastilla ,@laune 是的,我需要比较像 List
这样的集合而不是 Set。 -
@xiaocainiao 请google一下,如果你知道如何比较两个,你可以应用相同的机制来比较三个或更多......
标签: java algorithm sorting compare