2014-01-23 68 views

回答

6

您可以使用此findAll方法:

def list = [] 
def matching = list.findAll { A a -> 
    a.B == a.C 
} 

更新

你可以得到所有對匹配的對象這樣的:

def matching = [] 
list.unique { A a1, A a2 -> 
    if (a1.B == a2.C || a1.C == a2.B) { 
     matching << a1 << a2 
    } 
    return 1 
} 

這是怎麼樣的因爲它不按照預期使用unique方法。

+0

嗨drorb,謝謝。也許我沒有清楚地描述我的情況。我希望比較一個對象的A屬性是否等於另一個對象的B屬性。如果是,則返回這兩個對象。 – Joy

+0

我認爲你應該更新這個問題,並提供一個比較所有列表對象後所期望的例子 –

+0

感謝您的建議。我已經更新了這個問題,希望能夠讓問題更清楚。 – Joy

0

不知道你是否希望你的結果壓扁與否,反正這裏的返回元組的列表的解決方案:您的回覆

def result = list.inject([]) {acc,a1-> 
    list.each {a2-> 
     if (!a1.is(a2) && a1.b == a2.c) { 
      acc << [a1,a2] 
     } 
    } 
    acc 
} 
相關問題