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

JAVA 中集合取交集

日常工作 经常需要取两个数据集的交集。对常用的List 和Set集合做了一个测试

 public static void main(String[] args) {List<Integer> list1 = Lists.newArrayList();List<Integer> list2 = Lists.newArrayList();Set<Integer> set3 = Sets.newHashSet();Set<Integer> set4 = Sets.newHashSet();for (int i = 0; i < 100000; i++) {list1.add(i);set3.add(i);list2.add(i);set4.add(i);}System.out.println("list1 size " + list1.size());System.out.println("list2 size " + list2.size());System.out.println("set3 size " + set3.size());System.out.println("set4 size " + set4.size());StopWatch stopWatch =new StopWatch("交集测试");stopWatch.start("list交集测试");list2.parallelStream().filter(data -> list1.contains(data)).collect(Collectors.toList());stopWatch.stop();stopWatch.start("set交集测试");set4.parallelStream().filter(data -> set3.contains(data)).collect(Collectors.toSet());stopWatch.stop();StopWatch.TaskInfo[] taskInfo = stopWatch.getTaskInfo();Arrays.stream(taskInfo).forEach(taskInfo1 -> {System.out.println(taskInfo1.getTaskName()+"---"+taskInfo1.getTimeMillis()+"毫秒");});}

测试结果如下:数据量都是10万的情况下。set的性能是 164.6倍多。

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

相关文章:

  • Android13 Launcher3 定制
  • 其他word转化为PDF的方式
  • 【Axure】axure rp 导入元件库和使用,主流元件库下载使用
  • ISP 处理流程
  • 【计算思维】少儿编程蓝桥杯青少组计算思维题考试真题及解析C
  • 百望云斩获“新华信用金兰杯”ESG优秀案例 全面赋能企业绿色数字化
  • bclinux aarch64 ceph 14.2.10 对象存储 http网关 CEPH OBJECT GATEWAY Civetweb
  • 2023年亚太杯数学建模思路 - 复盘:人力资源安排的最优化模型
  • 【广州华锐互动】VR居家防火逃生模拟演练增强训练的真实性
  • PaddleClas学习1——使用PPLCNet模型对车辆属性进行识别(python)
  • CSS 实现新拟态(Neumorphism) UI 风格
  • js 深度学习(六)
  • 【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
  • React hooks(一):useState
  • springboot集成swagger3+解决页面无法访问问题
  • mapreduce-maven--30.串联所有单词的字串
  • Hive使用max case when over partition by 实现单个窗口取两个窗口的值(单个开窗函数,实际取两个窗口)
  • 2023年【北京市安全员-B证】试题及解析及北京市安全员-B证证考试
  • 二维码智慧门牌管理系统升级解决方案:流量监控引领服务卓越
  • Linux内核面试题(1)
  • wpr -start generalprofile -start pool -filemode 这句命令具体是什么意思
  • C/CPP基础练习题多维数组,矩阵转置,杨辉三角详解
  • 父组件用ref获取子组件数据
  • Haskell添加HTTP爬虫ip编写的爬虫程序
  • MySQL 社区开源备份工具 Xtrabackup 详解
  • 【仿真】ruckig在线轨迹生成器示例
  • LeetCode 面试题 16.22. 兰顿蚂蚁
  • Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
  • 科研学习|研究方法——Python计量Logit模型
  • 灵活运用Vue指令:探究v-if和v-for的使用技巧和注意事项