1. public class ListDistinctExample {
  2.  
  3. public static void main(String[] args) {
  4. List<Integer> list = new ArrayList<Integer>() {{
  5. add(1);
  6. add(3);
  7. add(5);
  8. add(2);
  9. add(1);
  10. add(3);
  11. add(7);
  12. add(2);
  13. }};
  14. System.out.println("原集合:" + list);
  15. method(list);
  16.  
  17. }
  18.  
  19. /**
  20. * 方法1:contains判断去重(有序)
  21. * @param list
  22. */
  23. // public static void method(List list){
  24. // List newList = new ArrayList();
  25. // for (Object i : list) {
  26. // if(!newList.contains(i)){
  27. // newList.add(i);
  28. // }
  29. // }
  30. //
  31. // System.out.println("newList = " + newList);
  32. // }
  33.  
  34. /**
  35. * 方法2:迭代器去重(无序)
  36. * @param list
  37. */
  38. // public static void method(List list){
  39. // Iterator iterator = list.iterator();
  40. // while (iterator.hasNext()) {
  41. // //获取循环的值
  42. // Object item = iterator.next();
  43. // //如果存在相同的值,看元素第一次出现的下标是否和最后一次出现的下标相同
  44. // if(list.indexOf(item) != list.lastIndexOf(item)){
  45. // //移除最后两个相同的值
  46. // iterator.remove();
  47. // }
  48. // }
  49. // System.out.println("list = " + list);
  50. // }
  51.  
  52. /**
  53. * HashSet去重(无序)
  54. * @param list
  55. */
  56. // public static void method(List list){
  57. // HashSet set = new HashSet(list);
  58. // System.out.println("去重后的集合 = " + set);
  59. // }
  60.  
  61. /**
  62. * LinkedHashSet去重(有序)
  63. * @param list
  64. */
  65. // public static void method(List list){
  66. // LinkedHashSet<Integer> set = new LinkedHashSet<>(list);
  67. // System.out.println("LinkedHashSet去重 = " + set);
  68. // }
  69.  
  70. /**
  71. * 使用 Stream 去重
  72. * @param list
  73. */
  74. public static void method(List<Integer> list) {
  75. list = list.stream().distinct().collect(Collectors.toList());
  76. System.out.println("去重集合:" + list);
  77. }
  78. }

java中list集合的几种去重方式的更多相关文章

  1. Java中List集合的三种遍历方式(全网最详)

    List集合在Java日常开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍. 我总结了三种List集合的遍历方式,下面一一来介绍. 首 ...

  2. Java中Map集合的四种访问方式(转)

    最近学习Java发现集合类型真是很多,访问方式也很灵活,在网上找的方法,先放下备用 public static void main(String[] args) { Map<String, St ...

  3. 【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

  4. Java中匿名类的两种实现方式(转)

    使用匿名内部类课使代码更加简洁.紧凑,模块化程度更高.内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到.然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式 ...

  5. Java中的HashMap的2种遍历方式比较

    首先我们准备数据,准备一个map Map<String, String> map = new HashMap<String, String>(); for (int i = 0 ...

  6. java中遍历集合的三种方式

    第一种遍历集合的方式:将集合变为数组 package com.lw.List; import java.util.ArrayList; import java.util.List; import ja ...

  7. java中线程池的几种实现方式

    1.线程池简介:    多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力.        假设一个服务器完成一项任务所需时间为:T1 创建 ...

  8. Java 中线程池的 7 种创建方式!

    在 Java 语言中,并发编程都是通过创建线程池来实现的,而线程池的创建方式也有很多种,每种线程池的创建方式都对应了不同的使用场景,总体来说线程池的创建可以分为以下两类: 通过 ThreadPoolE ...

  9. java中进程与线程--三种实现方式

    一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是一个线程. 进程:进程是指 ...

随机推荐

  1. iphone苹果手机拼健康码行程码教程

    因为疫情原因,不管是上班,还是上学,各公司和学校都要求提供全家人的健康码和行程码,并弄成一张拼图,这样方便统计!这就苦了广大用苹果手机的朋友们了,因为苹果手机没有自带的拼图软件. 下面我就教大家一个非 ...

  2. while循环结构

    一.循环: 1.场景: ①.用户名和密码,反复输入 ②.计算1-100之间 ③.游戏,重生 ④.-- 2.方式 ①.while ②.for 3.while格式 while 条件:要循环执行的代码 布尔 ...

  3. 【摸鱼神器】UI库秒变LowCode工具——列表篇(二)维护json的小工具

    上一篇介绍了一下如何实现一个可以依赖 json 渲染的列表控件,既然需要 json 文件,那么要如何维护这个 json 文件就成了重点,如果没有好的维护方案的话,那么还不如直接用UI库. 所以需要我们 ...

  4. CentOS8设置国内镜像源(阿里云镜像)

    CentOS8设置国内镜像源(阿里云) 1.备份原有配置 [root@localhost ~]# mkdir /etc/yum.repos.d.bak [root@localhost ~]# mv / ...

  5. 24.Haproxy搭建Web群集

    Haproxy搭建Web群集 目录 Haproxy搭建Web群集 Haproxy简介 常见的Web集群调度器 软件类 硬件类 Haproxy应用分析 HAProxy的主要特性 HAProxy常见的8种 ...

  6. JS:条件语句2

    1.for循环:循环代码块一定的次数 例: for(var i = 0;i<5;i++){ console.log(i); } // 0 1 2 3 4 遍历对象: var arr=[" ...

  7. ansible对文件内容操作

    ansible lineinfile 简介 lineinfile该模块是操作文件中的每一行内容,他是按照行为单位的,和下面的replace模块并不冲突. 修改匹配行,如果不存在就会添加 tasks: ...

  8. mysql中innodb和myisam区别

    前言 InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了. 1.事务和外键 ● InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修 ...

  9. Python爬取某网站文档数据完整教程(附源码)

    基本开发环境 (https://jq.qq.com/?_wv=1027&k=NofUEYzs) Python 3.6 Pycharm 相关模块的使用 (https://jq.qq.com/?_ ...

  10. JAVA中简单的for循环竟有这么多坑,你踩过吗

    JAVA中简单的for循环竟有这么多坑,你踩过吗 实际的业务项目开发中,大家应该对从给定的list中剔除不满足条件的元素这个操作不陌生吧? 很多同学可以立刻想出很多种实现的方式,但你想到的这些实现方式 ...