当前位置: 首页 > news >正文

28 Java练习——实现两个集合的交集和并集

        求并集的思路:假设传入的是一个ArrayList对象,求并集的时候直接调用其中一个List集合的addAll方法将另一个集合合并过来,而List的特性是有序,重复的。因此,使用Set接口的无序不可重复的特性,把Collection对象作为输入,将ArrayList转为HashSet对象,对元素进行去重,即可得到两个集合的并集。

        求交集的思路:使用嵌套循环,判断list1的第i个元素是否与list2的第j个元素相同,如果相同则存放在一个HashSet集合中,为什么使用Set集合呢?因为假设list1的第一个元素和第二个元素都是1,list的第一个元素是1,那么就会出现存放两次的情况,使用Set集合直接对重复元素去重,当然,也可以先把两个List集合先去重,再判断是否元素相同。

package jiang.com;import java.util.*;public class Practice2 {//实现两个集合的交集和并集public static void main(String[] args) {new ArrayList<Integer>();List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(1,1,3,4,5,77,66));System.out.println("集合1:"+list1);List<Integer> list2 = new ArrayList<Integer>(Arrays.asList(2,1,6,4,3,72,66));System.out.println("集合2:"+list2);Set<Integer> set3 = new HashSet<Integer>(); // 存放并集set3.addAll(list1);set3.addAll(list2);System.out.println("并集:"+set3);Set<Integer> set4 = new HashSet<Integer>(); // 存放交集for (Integer num1 : list1){for (Integer num2 : list2){if (num1.equals(num2)){set4.add(num1);break; // 跳出第二个for循环}}}System.out.println("交集:"+set4);}
}

        运行结果:

http://www.lryc.cn/news/109976.html

相关文章:

  • ES6学习-Promise
  • 《Web安全基础》03. SQL 注入
  • 算法与数据结构(二十一)二叉树(纲领篇)
  • visio,word添加缺少字体,仿宋_GB2312、楷体_GB2312、方正小标宋简体等字体下载
  • Java爬虫
  • 海外应用商店优化实用指南之关键词
  • element+vue 之动态form
  • winform学习(3)-----Windows窗体应用和Windows窗体应用(.Net Framework)有啥区别?
  • 虚拟化中的中断机制:X86与PIC 8259A探索(上)
  • 软件外包开发语言排行榜
  • BI技巧丨利用OFFSET计算同环比
  • 整理mongodb文档:collation
  • 【LangChain】Prompts之Prompt templates
  • 【数字IC基础】时序违例的修复
  • 深度学习实战46-基于CNN的遥感卫星地图智能分类,模型训练与预测
  • Node.js-fs模块文件创建、删除、重命名、文件内容的写入、读取以及文件夹的相关操作
  • LIN协议总结
  • Redis BigKey案例
  • ThinkPHP v6.0.8 CacheStore 反序列化漏洞
  • Spring 事务详解(注解方式)
  • 华为云waf 使用场景
  • ?.的写法 后缀修饰符
  • org.apache.hadoop.hive.ql.exec.DDLTask. show Locks LockManager not specified解决
  • Adaptive autosar 都有哪些模块?各有什么功能?
  • C++ 动态内存分配
  • 设计模式——面向对象的7大设计原则
  • 智慧防汛,数字科技的力量
  • “中国软件杯”飞桨赛道晋级决赛现场名单公布
  • JDBC处理批量数据提高效率
  • 使用css和js给按钮添加微交互的几种方式