我有两个 ArrayList
类型的 Answer
(自制类)。
我想比较这两个列表,看看它们是否包含相同的内容,但不考虑顺序。
例子:
//These should be equal.
ArrayList<String> listA = {"a", "b", "c"}
ArrayList<String> listB = {"b", "c", "a"}
List.equals
指出如果两个列表包含相同的大小、内容和元素顺序,则它们是相等的。我想要同样的东西,但顺序无关紧要。
有没有简单的方法可以做到这一点?或者我需要做一个嵌套的 for 循环,并手动检查两个列表的每个索引?
注意:我无法将它们从 ArrayList
更改为另一种类型的列表,它们需要保持不变。
原文由 iaacp 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
Collections.sort()
对两个列表进行排序,然后使用 equals 方法。一个稍微好一点的解决方案是在排序前先检查它们是否相同,如果不相同,则它们不相等,然后排序,然后使用等于。例如,如果您有两个字符串列表,它将类似于: