判断两个不重复的list集合是否相等 只比较元素值 不比较顺序

时间:2024-01-24 09:27:07

判断两个不重复的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("不相等");
    }


}

????运行结果

判断两个不重复的list集合是否相等 只比较元素值 不比较顺序_List

????️最后总结

????要熟练掌握技巧,一定多多坚持练习:骐骥一跃,不能十步;驽马十驾,功在不舍

判断两个不重复的list集合是否相等 只比较元素值 不比较顺序_List_02