我们工作中时常会遇到对一个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集合去重的几种方法相关推荐

  1. java中给对象的List集合去重的几种方法(Lambda)

    java中给对象的List集合去重的几种方法 前言 一.lambda表达式的去重方式 二.Stream API中的collect去重方法 三.Stream API 中的distinct方法去重 前言 ...

  2. python list去重时间复杂度_List集合去重的一种方法 z

    需要对一个List集合去重,情况是该集合中会出现多个Name属性值相同的,但是其他属性值不同的数据. 在这种情况下,需求要只保留其中一个就好. 我觉得遍历和HashSet都不是我想要的,便采用了一下方 ...

  3. List 集合去重的 3 种方法

    问题由来 在实际开发的时候,我们经常会碰到这么一个困难:一个集合容器里面有很多重复的对象,里面的对象没有主键,但是根据业务的需求,实际上我们需要根据条件筛选出没有重复的对象. 比较暴力的方法,就是根据 ...

  4. List集合去重的一种方法

    前一段时间们需要对一个List<Model>集合去重,情况是该集合中会出现多个Name属性值相同的,但是其他属性值不同的数据. 在这种情况下,需求要只保留其中一个就好. 我觉得遍历和Has ...

  5. qt调用Linux脚本范例,QT下实现对Linux Shell调用的几种方法

    使用QProcess QThread ============================================ #include int main() { QProcess::exec ...

  6. Java中对List集合排序的两种方法

    第一种方法,就是list中对象实现Comparable接口,代码如下: public class Person implements Comparable<Person> {private ...

  7. Java实现对PDF文件添加水印

    Java实现对PDF文件添加水印 目录 Java实现对PDF文件添加水印 导入依赖 工具方法 效果 最近项目中遇到对PDF添加水印,实现有多种,采取的是itextpdf 导入依赖 <!-- 对P ...

  8. java验证xml格式是否正确的是_spring源码附录(1)java实现对XML格式的验证

    最近在看spring源码,涉及到xml文档的解析.xml文档的格式验证,发现自己对xml解析的基础较为薄弱,本篇博客复习下DOM方式解析xml(即spring解析xml的方式). DOM解析XML是将 ...

  9. java实现对properties类型文件的读写

    在java项目中,我们通常会有一些配置属性的数据,采用properties文件对数据进行管理是很有必要的,尤其是在属性值改变和项目环境发生变化时,所以特地总结一下对properties文件的最常见的操 ...

  10. java实现对pdf文件压缩,拆分,修改水印,添加水印

    最近要实现一个文件上传,并且在线预览上传文件的功能,设计思路是:把上传的文件通过openoffice转成pdf文件,并将pdf文件以流的形式返回到浏览器,由于上传的部分文件过大,转成pdf后传回前端浏 ...

最新文章

  1. GridView标题行换行之我见 (转)
  2. Linux 操作系统原理 — 内存 — 基于 MMU 硬件单元的虚/实地址映射技术
  3. 如何理解 JAVA 中的 volatile 关键字
  4. ITK:为每个像素添加常量
  5. c/c++操作mysql数据库使用utf8总结
  6. MySQL注入中load_file()函数的应用
  7. VMware vSphere 6.7配置最大更改
  8. oracle常用网址
  9. okhttp3 ExceptionInInitializerError 异常处理
  10. HW RIPv2认证
  11. iOS底层探索之类的结构—cache分析(下)
  12. define定义的函数如何引用_3分钟短文:Laravel 编程中优雅地添加定义常量
  13. 打印机服务器不存在修复,win10电脑安装打印机提示处理器不存在_win10添加打印机错误“打印处理器不存在的修复办法-爱纯净...
  14. 近600个教学学习资料链接(zz)
  15. 头条python后台一面凉经
  16. 计算机视觉与深度学习(8)
  17. Tyrion 中文文档(含示例源码)
  18. 为什么笔记本电脑自动关机_为什么我要放弃笔记本电脑
  19. 网络安全基本属性和STRIDE
  20. 家用监控系统需要服务器吗,家庭监控系统实现(一)

热门文章

  1. 使用JSON.parse字符串转换json报错解决办法
  2. Intel_Hm55_AHCI驱动
  3. MCSA / Windows Server 2016 安装Desktop Experience
  4. HTML+CSS实现静态小米商城首页(附完整代码)
  5. 【详细解读】知识图谱的这一人工智能技术分支的概念、技术、应用、与发展趋势
  6. MATLAB遗传算法调试
  7. 阿里云云效Maven仓库
  8. 印刷文字的字体与字号规定
  9. WPF教程(三十四)Hello, bound world!
  10. java实现pdf黑白化 : pdf转图片、图片黑白化、图片转pdf