背景:有些场景下,需要判断新旧两个list的元素是否有变动,从而决定是否需要执行某业务逻辑
上代码
网上可能你会看到
- retainAll: 这个方法使用起来达不到效果,两个list只要有交集,就返回false
- 转字符串equal的:如果要达到效果,需先对list排序,否则值相同,顺序不同无法满足
- 转map: 太过繁杂,有点高射炮打蚊子的感觉
自己写了个都看得懂实用的方法
private Boolean listsAllElementsSame(List<String> aList, List<String> bList) {
if (CollectionUtils.isEmpty(aList) && CollectionUtils.isEmpty(bList)) {
return true;
}
if (CollectionUtils.isEmpty(aList) || CollectionUtils.isEmpty(bList)) {
return false;
}
if (aList.size() != bList.size()) {
return false;
}
return aList.containsAll(bList);
}