Tôi đã tìm kiếm một phương thức hoạt động như Arrays.equals(a1, a2)
, nhưng bỏ qua thứ tự phần tử. Tôi không thể tìm thấy nó trong Google Collections (giống như Iterables.elementsEqual()
, nhưng điều đó không giải thích được thứ tự) và JUnit (assertEquals()
rõ ràng là chỉ gọi equals()
trên Bộ sưu tập, phụ thuộc vào việc triển khai Bộ sưu tập và đó không phải là điều tôi muốn Nó sẽ là tốt nhất nếu như một phương pháp sẽ mất Iterable
s, nhưng tôi cũng tốt với chỉ đơn giản là tham gia Collection
s Như vậy một phương pháp tất nhiên sẽ đưa vào tài khoản bất kỳ yếu tố trùng lặp trong bộ sưu tập (vì vậy nó không thể chỉ đơn giản là thử nghiệm cho containsAll()
).Có cách nào để kiểm tra xem hai Bộ sưu tập có chứa cùng các yếu tố, không phụ thuộc vào thứ tự không?
Lưu ý rằng tôi không hỏi làm thế nào để thực hiện một điều như vậy, tôi đã chỉ tự hỏi nếu có bất kỳ thư viện Bộ sưu tập tiêu chuẩn có nó.
Trong trường hợp bạn không muốn sử dụng Apache (hoặc bạn không thể), bạn luôn có thể làm: collection1.containsAll (collection2) && collection2.containsAll (collection1) –
@ChrisGonzales, hãy cẩn thận về giải pháp đó - nó sẽ trả về true cho hai bộ sưu tập sau đây: collection1 = [1, blah, 1, 4], collection2 = [1, blah, blah, 4]. Nơi hai bộ sưu tập đó thực sự không giống nhau. –