我有两个列表,比方说:
def list1 = ["ABC", "DEF", "GHI", "JKL"]
def list2 = ["ABC", "DEF", "JKL", "GHI"]
我想比较这两个列表并确保它们具有相同的值,无论它们出现的顺序如何。
我已经试过了,但它似乎不起作用:
assert new HashSet( Arrays.asList(list1)).equals(new HashSet( Arrays.asList(list2)))
谁能指出我正确的方向? 非常感谢。
最佳答案
如果你想继续使用 List
而不使用 Set
,你可以比较排序列表:
def list1 = ["ABC", "DEF", "GHI", "JKL"]
def list2 = ["ABC", "DEF", "JKL", "GHI"]
assert list1 != list2
assert list1.sort() == list2.sort()
建议的基于集合的比较可能是危险的,因为列表包含不同数量的重复项:
def list1 = ["ABC"]
def list2 = ["ABC", "ABC", "ABC"]
assert list1.sort() != list2.sort()
assert list1 as Set == list2 as Set // GOTCHA!
https://stackoverflow.com/questions/69435561/