use*_*885 3 java set comparable
给出两个集合:如何在Java中有效地比较它们?
List
Comparable
Set
hashCode
背景:
需要进行许多比较集很小(通常每组<5个元素).
ass*_*ias 9
比较两组的正确方法是使用该equals方法.我不担心性能,除非您已经证明这是导致性能问题的代码的一部分(我怀疑).考虑到你的设置(5个元素)的大小,这将非常快(可能是亚毫秒).
equals
将它们保存为列表,对它们进行排序并进行比较.(可比)
肯定会慢,因为你需要复制元素,对它们进行排序和比较.
将它们保存为集合并比较集合的哈希码?
如果2个集合相等(具有相同的内容),则它们将具有相同的哈希码.倒数不是真的:具有不同内容的2个集合可以具有相同的散列码.还要注意,对于HashSet例如,通过迭代所有元素来计算哈希码,因此它不是自由操作.
HashSet
归档时间:
13 年,6 月 前
查看次数:
18887 次
最近记录:
9 年,2 月 前