Groovy 比较未定义相等值的对象列表

Groovy 比较未定义相等值的对象列表,groovy,collections,Groovy,Collections,我有一个没有定义equal函数的类。我需要比较这两个对象的列表。以下是我当前解决方案的一些示例: def fromRecords = [new FooRecord(['ABC', 123L]), new FooRecord(['XYZ', 789L])] storage.write(fromRecords) def toRecords = storage.read() for (int i = 0; i < outRecords.size(); i++) { assert outRec

我有一个没有定义
equal
函数的类。我需要比较这两个对象的列表。以下是我当前解决方案的一些示例:

def fromRecords = [new FooRecord(['ABC', 123L]), new FooRecord(['XYZ', 789L])]
storage.write(fromRecords)
def toRecords = storage.read()

for (int i = 0; i < outRecords.size(); i++) {
 assert outRecords[i].contents == records[i].contents
}
def fromRecords=[new FooRecord(['ABC',123L]),new FooRecord(['XYZ',789L])]
存储。写入(来自记录)
def toRecords=storage.read()
对于(int i=0;i

是否有更优雅的groovy方法来执行相同的比较?

您不需要循环,列表上的
equals
方法应该负责比较顺序并检查元素是否相等:

assert outRecords.contents == records.contents
=
运算符将导致调用
outRecords.contents.equals(records.contents)
,这将检查
列表是否相等(注意顺序和列表内容-元素对元素
进行检查)