java 两个arraylist放着相同的东西,但顺序不同,怎么判断两个是否相等

2025-03-23 11:47:58
推荐回答(4个)
回答1:

相等条件:相互包含,且长度相等,和相等

boolean result = list1.containsAll(list2) && list2.containsAll(list1)
                 && list1.size() == list2.size()
                 && list1.stream().mapToInt(x -> x).sum()
                    ==list2.stream().mapToInt(x -> x).sum();

回答2:

按顺序遍历 全都相等 就相等 遍历中有一个不相等 直接返回不相等

回答3:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

/**
* 队列比较
* @param
* @param a
* @param b
* @return
*/
public static > boolean compare(List a, List b) {
if(a.size() != b.size())
return false;
Collections.sort(a);
Collections.sort(b);
for(int i=0;i if(!a.get(i).equals(b.get(i)))
return false;
}
return true;
}

2. [代码]测试方法
?

1
2
3
4
5
6
7

public static void main(String[] args) {
List a = Arrays.asList(1,2,3,4);
List b = Arrays.asList(4,3,2,1);
System.out.println(compare(a, b));
}

//执行结果 true

回答4:

//Collection中有一个取交集的方法,还有取交集的方法:
retainAll(Collection c) 
          仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。