【发布时间】:2017-07-28 21:01:10
【问题描述】:
我在这里有两个类似的问题:
- Java Compare Two List's object values?
- Java ArrayList - how can I tell if two lists are equal, order not mattering?
但我的情况很烦人,让这个问题有点复杂。我需要比较的对象来自一个古老的第三方 jar,它没有 equals() 函数。而且我担心修改它的代码。
我想出的一个解决方案是构建另外两个列表,它们的值是原始列表的 tostring。而且问题与问题2没有区别。
但我还是想知道有没有更好的办法?
【问题讨论】:
-
我可能会为元素编写一个包含
equals()的包装器并在列表中使用它们。 -
你可以让另一个类负责计算相等性。使用方法如:
public static boolean equalsAncientObj(Ancient a1, Ancient a2);。这需要公开公开足够有用的状态。然后你可以写一个“列表比较器”,它明确地使用这个函数来检查相等性。