判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
🔊前言
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
- 1.如果源为空 现在不为空则不相等
- 2.如果现在为空 源不为空则不相等
- 3.如果两个都不为空
- 4.如果源编码集合包含现编码集合 现编码集合 包含源编码集合 则表示相等 否则不相等
📕代码
List<String> originList = Arrays.asList("1", "2", "3");
List<String> nowList = Arrays.asList("1", "3", "2", "4");
/**
* * 判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
* * 1.如果源为空 现在不为空则不相等
* * 2.如果现在为空 源不为空则不相等
* * 3.如果两个都不为空
* * 4.如果源编码集合包含现编码集合 现编码集合 包含源编码集合 则表示相等 否则不相等
*/
//1.如果源为空 现在不为空则不相等
if (CollectionUtils.isEmpty(originList)
&& CollectionUtils.isNotEmpty(nowList)) {
throw new RuntimeException("不相等");
//2.如果现在为空 源不为空则不相等
} else if (CollectionUtils.isEmpty(nowList)
&& CollectionUtils.isNotEmpty(originList)) {
throw new RuntimeException("不相等");
//3.如果两个都不为空
} else if (CollectionUtils.isNotEmpty(originList)
&& CollectionUtils.isNotEmpty(nowList)) {
HashSet<String> originCodesSet = new HashSet<>(originList);
if (originCodesSet.size() != originList.size()) {
throw new RuntimeException("编码不能重复");
}
HashSet<String> nowCodesSet = new HashSet<>(nowList);
if (nowCodesSet.size() != nowList.size()) {
throw new RuntimeException("编码不能重复");
}
//4.如果源编码集合包含现编码集合 现编码集合 包含源编码集合 则表示相等 否则不相等
if (!(originList.containsAll(nowList)
&& nowList.containsAll(originList))) {
throw new RuntimeException("不相等");
}
}
🔚运行结果
🖊️最后总结
🖲要熟练掌握技巧,一定多多坚持练习:骐骥一跃,不能十步;驽马十驾,功在不舍。