算法探索_多序列合并去重
最近项目中用到了合并去重的相关需求,于是这边总结了不同的去重方式
这边是深海封装的去重合并方法;
/**作者:赵星海*时间:2020/6/15 17:46*用途:多序列合并去重*/public ArrayList requestEditText(boolean isOrderly, ArrayList<Integer>... args) {if (args == null || args.length == 0) return new ArrayList<>();HashSet<Integer> hashSet = new HashSet<>();if (isOrderly) {ArrayList<Integer> returnList = new ArrayList<>();// 有序for (int j = 0; j < args.length; j++) {for (int z = 0; z < args[j].size(); z++) {if (hashSet.add(args[j].get(z)))returnList.add(args[j].get(z));}}return returnList;} else {// 无序for (int j = 0; j < args.length; j++) {for (int z = 0; z < args[j].size(); z++) {hashSet.add(args[j].get(z));}}return new ArrayList<>(hashSet);}}
接下来咱们测试一下和Java8后的lambda表达式 去重合并 的 耗时对比
测试代码:
/**作者:赵星海*时间:2020/6/17 17:49*用途: 关于多序列合并去重的耗时测试*/
public static void main(String[] args) {ArrayList<Integer> list1 = new ArrayList<>();ArrayList<Integer> list2 = new ArrayList<>();ArrayList<Integer> list3 = new ArrayList<>();for (int i = 0; i < 10000; i++) {list1.add(1);list2.add(2);list3.add(3);}long time = new Date().getTime();List<Integer> list = new ArrayList<>();list.addAll(list1);list.addAll(list2);list.addAll(list3);List<Integer> collect = list.stream().distinct().collect(Collectors.toList());long time1 = new Date().getTime();System.out.println(time1 - time + " → lambda去重合并时间");ArrayList arrayList = requestEditText(true, list1, list2, list3);long time2 = new Date().getTime();System.out.println(time2 - time1 + " → 有序用时");long time3 = new Date().getTime();ArrayList arrayList1 = requestEditText(false, list1, list2, list3);System.out.println(time3 - time2 + " → 无序用时");System.out.println("------lambda结果-------");collect.forEach(x -> System.out.println(x + ""));System.out.println("------有序结果-------");arrayList.forEach(System.out::println);System.out.println("------无序结果-------");arrayList1.forEach(System.out::println);}
耗时对比结果:
102 → lambda去重合并时间
5 → 有序用时
0 → 无序用时
------lambda结果-------
1
2
3
------有序结果-------
1
2
3
------无序结果-------
1
2
3
算法探索_多序列合并去重相关推荐
- 算法探索_盛最多水的容器
问题描述: 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找出其 ...
- 两个listmap合并去重_我是如何用单机实现亿级规模题库去重的?
题外话:欢迎将公众号设置为星标,技术文章第一时间看到.我们将一如既往精选技术好文,提供有价值的阅读.如有读者想要投稿,可以在公众号任意文章下留言,技术博主奖励丰厚. 作者:haolujun cnblo ...
- C语言序列是否有序、序列中删除指定数字、序列中整数去重、有序序列合并问题
近期在牛客上面刷题遇到了上述问题,对于刚接触C的我还是有些头疼,所以写这篇文章整理一下思路. 文章推荐人群:刚接触C的广大同志们 我将以 题+代码+简易的思路 的方式进行,提前感谢老铁们的阅览! 序列 ...
- 两个listmap合并去重_单机亿级规模题库去重,如果是你会怎么做?
作者:haolujun原文:https://www.cnblogs.com/haolujun/p/8399275.html 背景 最近工作中遇到了一个问题:如何对大规模题库去重?公司经过多年的积累,有 ...
- dbscan算法_DBSCAN聚类算法探索
作者:单华 DBSCAN是非监督学习中密度学习算法里的佼佼者.本文对DBSCAN做了简单的探索,全文无数学公式,共2800余字. 在ARGO之前提到的聚类与K-Means一文中,提到了密度聚类方法DB ...
- 去重 指定区域数据_大数据分析常用去重算法分析
去重分析在企业日常分析中的使用频率非常高,如何在大数据场景下快速地进行去重分析一直是一大难点.在近期的 Apache Kylin 沙龙上, Kyligence 大数据研发工程师陶加涛为大家揭开了大数据 ...
- 强化学习算法在京东广告序列推荐场景的应用实践
猜你喜欢 0.淘宝首页猜你喜欢推荐建模实践 1.[免费下载]2022年3月份热门报告 2.[实践]小红书推荐中台实践 3.微信视频号实时推荐技术架构分享 4.对比学习在宽狩推荐系统中的应用实践 5.微 ...
- 【推荐实践】强化学习算法在京东广告序列推荐场景的应用
猜你喜欢 0.搜狗信息流推荐系统架构及推荐算法实践1.如何搭建一套个性化推荐系统?2.京东推荐算法精排技术实践3.[万字长文]某视频APP推荐算法及策略详解4.微博推荐算法实践与机器学习平台演进5.腾 ...
- 广义多目标算法探索实践
分享嘉宾:周建斌 58同城 算法高级架构师 编辑整理:吴雪松 小米 出品平台:DataFunTalk 导读:58部落是面向58同城同镇用户的内容社区,主要产品形态为PGC.UGC的信息流,样式丰富.基 ...
最新文章
- WinObjC?这是什么鬼?
- 在 OpenGL ES 2.0 上实现视差贴图(Parallax Mapping)
- 图像处理--角点检测与匹配
- SpringBoot Jar包外部application文件
- 画圆角 - HTML5 Canvas 作图
- php学习之路:WSDL详细解释(两)
- 4.微服务:从设计到部署 --- 服务发现
- 罗胖又有“惊人之语”:内容收费的窗口期正来到
- 解决“HTTP Error 401 – Unauthorized”
- IDEA主题SublimeTest3修改
- journalctl命令使用
- Word中中英文目录对齐设置问题
- 计算机登录账户删除著名恢复,win10系统删除计算机无用账户的恢复步骤
- 2020仙气十足的女生个性网名
- 好评不断的文化纪录片《中国》,背后的“剪刀手”竟是它?
- Chaya虚拟机学习 —— 启用Docker遇到的Bug
- java语言就业方向_java就业有哪些方向
- 硅基压力传感器—MEMS
- ubuntu插入U盘,无法识别
- matlab车轮滚动动画,Fireworks动画教程:简单制作轮子滚动动画效果