我有两个清单,比方说:
def list1 = ["ABC", "DEF", "GHI", "JKL"]
def list2 = ["ABC", "DEF", "JKL", "GHI"]
Run Code Online (Sandbox Code Playgroud)
我想比较这两个列表并确保它们的值相同,无论它们出现的顺序如何。
我已经尝试过这个,但它似乎不起作用:
assert new HashSet( Arrays.asList(list1)).equals(new HashSet( Arrays.asList(list2)))
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?非常感激。
如果你想保留List
s 而不使用Set
s,你可以比较排序列表:
def list1 = ["ABC", "DEF", "GHI", "JKL"]
def list2 = ["ABC", "DEF", "JKL", "GHI"]
assert list1 != list2
assert list1.sort() == list2.sort()
Run Code Online (Sandbox Code Playgroud)
建议的基于集合的比较可能很危险,因为列表包含不同数量的重复项:
def list1 = ["ABC"]
def list2 = ["ABC", "ABC", "ABC"]
assert list1.sort() != list2.sort()
assert list1 as Set == list2 as Set // GOTCHA!
Run Code Online (Sandbox Code Playgroud)