我一直在尋找一種類似於Arrays.equals(a1, a2)
的方法,但忽略了元素順序。我無法在Google Collections中找到它(類似於Iterables.elementsEqual()
,但它確實佔用了排序),JUnit(assertEquals()
顯然只是在集合上調用equals()
,這取決於Collection實現,而這不是我想要的) 如果這樣的方法會花費Iterable
秒,那麼最好,但我也很好,只要簡單地取出Collection
s 這樣的方法當然會考慮集合中的任何重複元素(因此它不能簡單地測試對於containsAll()
)。有沒有辦法檢查兩個集合是否包含相同的元素,與訂單無關?
請注意,我不問如何實現這樣的事情,我只是想知道是否有任何標準集合庫有它。
如果你不想使用Apache(或者你不能),你總是可以這樣做: collection1.containsAll(collection2)&& collection2.containsAll(collection1) – 2013-07-01 00:27:05
@ChrisGonzales,注意這個解決方案 - 它會返回true以下兩個集合:collection1 = [1,blah,1,4], collection2 = [1,blah,blah,4]。這兩個集合的確不一樣。 – 2014-07-24 15:59:15