比较java中两个数据结构的最快方法

LB4*_*B40 5 java

我想知道java 1.5中比较两个数据结构的最快方法是什么.

我的数据结构代表了一棵非常大的树.我可以遍历整个数据结构并逐个节点地比较(我想这会很慢).或者我可以计算数据结构的哈希来更快地完成它,对吧?

计算此哈希的最佳(有效且不太长)方法是什么?

我不想花太多时间来计算哈希...

希望我很清楚..: - )...

Ben*_*n S 1

每个对象都.equals()继承.hashCode()Object

Java 中的标准数据结构应该已经.hashCode()为您实现了一个相对快速的方法(哈希可能是增量计算的,或者可能需要迭代每个元素,请检查您正在使用的数据结构的源以确保)。

您应该意识到,即使数据结构不相同,也可能会发生哈希冲突。

为了进行准确的比较,我将在两棵树上同时执行树遍历来比较每个元素。这样,树的形状以及所包含的元素将及时进行比较,O(n)其中n是最大树的大小。

  • 请记住,默认的 .equals() 实现只是检查“==”(这两个对象实际上是同一个对象)。您的类应该重写 equals() 来进行有意义的比较。 (4认同)