Java实现对List集合去重的几种方法
我们工作中时常会遇到对一个List集合做去重处理的场景,今天列举几种对List去重的方法。
我们先给list随便赋几个值:
List<Long> list = new ArrayList<>();list.add(1L);list.add(2L);list.add(3L);list.add(3L);
方法一:使用双重for循环去重(效率低)
这个方法的本质上就是一个简单的排序算法,类似于选择排序
for (int i = 0; i < list.size(); i++){for (int j = i; j < list.size(); ){if (list.get(i).equals(list.get(j)) && i != j){list.remove(j);}else {j++;}}}
方法二:使用java8新特性Stream去重
list.stream().distinct().collect(Collectors.toList());
方法三:使用set集合去重,不打乱顺序
Set set = new HashSet();for (T item : list) {set.add(item);}
方法四:使用另一个集合保存不重复的数据
List<Long> newlist= new ArrayList<>();for (Long item : list){if (!newlist.contains(item)){newlist.add(item);}}
方法五:使用set和list转换去重
Set set = new HashSet();set.addAll(list);List<Long> longList = new ArrayList<>();longList.addAll(set);System.out.println(longList);
Java实现对List集合去重的几种方法相关推荐
- java中给对象的List集合去重的几种方法(Lambda)
java中给对象的List集合去重的几种方法 前言 一.lambda表达式的去重方式 二.Stream API中的collect去重方法 三.Stream API 中的distinct方法去重 前言 ...
- python list去重时间复杂度_List集合去重的一种方法 z
需要对一个List集合去重,情况是该集合中会出现多个Name属性值相同的,但是其他属性值不同的数据. 在这种情况下,需求要只保留其中一个就好. 我觉得遍历和HashSet都不是我想要的,便采用了一下方 ...
- List 集合去重的 3 种方法
问题由来 在实际开发的时候,我们经常会碰到这么一个困难:一个集合容器里面有很多重复的对象,里面的对象没有主键,但是根据业务的需求,实际上我们需要根据条件筛选出没有重复的对象. 比较暴力的方法,就是根据 ...
- List集合去重的一种方法
前一段时间们需要对一个List<Model>集合去重,情况是该集合中会出现多个Name属性值相同的,但是其他属性值不同的数据. 在这种情况下,需求要只保留其中一个就好. 我觉得遍历和Has ...
- qt调用Linux脚本范例,QT下实现对Linux Shell调用的几种方法
使用QProcess QThread ============================================ #include int main() { QProcess::exec ...
- Java中对List集合排序的两种方法
第一种方法,就是list中对象实现Comparable接口,代码如下: public class Person implements Comparable<Person> {private ...
- Java实现对PDF文件添加水印
Java实现对PDF文件添加水印 目录 Java实现对PDF文件添加水印 导入依赖 工具方法 效果 最近项目中遇到对PDF添加水印,实现有多种,采取的是itextpdf 导入依赖 <!-- 对P ...
- java验证xml格式是否正确的是_spring源码附录(1)java实现对XML格式的验证
最近在看spring源码,涉及到xml文档的解析.xml文档的格式验证,发现自己对xml解析的基础较为薄弱,本篇博客复习下DOM方式解析xml(即spring解析xml的方式). DOM解析XML是将 ...
- java实现对properties类型文件的读写
在java项目中,我们通常会有一些配置属性的数据,采用properties文件对数据进行管理是很有必要的,尤其是在属性值改变和项目环境发生变化时,所以特地总结一下对properties文件的最常见的操 ...
- java实现对pdf文件压缩,拆分,修改水印,添加水印
最近要实现一个文件上传,并且在线预览上传文件的功能,设计思路是:把上传的文件通过openoffice转成pdf文件,并将pdf文件以流的形式返回到浏览器,由于上传的部分文件过大,转成pdf后传回前端浏 ...
最新文章
- GridView标题行换行之我见 (转)
- Linux 操作系统原理 — 内存 — 基于 MMU 硬件单元的虚/实地址映射技术
- 如何理解 JAVA 中的 volatile 关键字
- ITK:为每个像素添加常量
- c/c++操作mysql数据库使用utf8总结
- MySQL注入中load_file()函数的应用
- VMware vSphere 6.7配置最大更改
- oracle常用网址
- okhttp3 ExceptionInInitializerError 异常处理
- HW RIPv2认证
- iOS底层探索之类的结构—cache分析(下)
- define定义的函数如何引用_3分钟短文:Laravel 编程中优雅地添加定义常量
- 打印机服务器不存在修复,win10电脑安装打印机提示处理器不存在_win10添加打印机错误“打印处理器不存在的修复办法-爱纯净...
- 近600个教学学习资料链接(zz)
- 头条python后台一面凉经
- 计算机视觉与深度学习(8)
- Tyrion 中文文档(含示例源码)
- 为什么笔记本电脑自动关机_为什么我要放弃笔记本电脑
- 网络安全基本属性和STRIDE
- 家用监控系统需要服务器吗,家庭监控系统实现(一)
热门文章
- 使用JSON.parse字符串转换json报错解决办法
- Intel_Hm55_AHCI驱动
- MCSA / Windows Server 2016 安装Desktop Experience
- HTML+CSS实现静态小米商城首页(附完整代码)
- 【详细解读】知识图谱的这一人工智能技术分支的概念、技术、应用、与发展趋势
- MATLAB遗传算法调试
- 阿里云云效Maven仓库
- 印刷文字的字体与字号规定
- WPF教程(三十四)Hello, bound world!
- java实现pdf黑白化 : pdf转图片、图片黑白化、图片转pdf