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

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

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


}

🔚运行结果

image-20231207103058092

🖊️最后总结

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

搞笑点赞

目录
相关文章
|
3月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
3月前
|
安全
List集合特有功能
List集合特有功能
37 2
|
3月前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
3月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
7天前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
34 5
|
23天前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
23 3
|
2月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
18 3
|
3月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
3月前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
38 5
|
3月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。