java List 去除重复元素的五种方式

集合

     List<String> list = new ArrayList<>();list.add("33");list.add("33");list.add("66");list.add("33");list.add("11");list.add("66");list.add("66");list.add("88");list.add("88");

1.双重for i 循环 使用 remove 方法删除掉重复的元素

     // 这里内层循环是从后面往前面删除,所以不用里面不用 j-- 操作for(int i = 0; i < list.size()-1; i++) {for( int j = list.size()-1; j > i;j--)  {if(list.get(j).equals(list.get(i)))  {list.remove(j);}}}System.out.println(list);// 这里内层循环是从前往后删除,由于remove方法涉及到内存移动,// 在删除一个元素后后面一个元素的下标会往前移,所以这里需要 j-- 将取值也前移一位for (int i = 0; i < list.size(); i++) {for (int j = i + 1; j < list.size(); j++) {if (list.get(i) == list.get(j)) {list.remove(j);j--;}}}System.out.println(list);

2.使用HashSet 去除重复,但该方法不能保证集合元素原本的顺序

     Set h = new HashSet(list);list.clear();list.addAll(h);System.out.println(list);

3.使用HashSet来判断元素是否重复,然后将不重复的元素添加到List中

     Set<String> s = new HashSet<>();List<String> l = new ArrayList<>();for (String str : list) {if (s.add(str)) {l.add(str);}}list.clear();list.addAll(l);System.out.println(list);

4.使用contains方法来判断元素是否重复,然后将不重复的元素添加到List中

     List<String> l = new ArrayList<>();for (String str : list) {if (!l.contains(str)) {l.add(str);}}list.clear();list.addAll(l);System.out.println(list);

5.Java8中 list.stream().distinct() 去除重复元素

补充一下,今天在项目中用这种方法的时候在 list.clear(); 的位置报错
java.lang.UnsupportedOperationException
百度了一下,都是说 Arrays 的 ArrayList 不支持 clear() 和 addAll() 方法导致的,
我没有去深究我这里是为啥报错了的,大佬们有兴趣的话可以评论下。
我项目里面,直接用 streamList 这个 List 了,效果一样
这里做个笔记记录下

     List<String> streamList = list.stream().distinct().collect(Collectors.toList());list.clear();list.addAll(streamList );System.out.println(list);

java List 去除重复元素的五种方式 学习笔记相关推荐

  1. java List去除重复数据的五种方式

    以下介绍五种-不同的方法去除Java中ArrayList中的重复数据 1.使用LinkedHashSet删除arraylist中的重复数据 **LinkedHashSet**是在一个ArrayList ...

  2. List 去除重复数据的五种方式,舒服~

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 多纤果冻 来源 | https://blog. ...

  3. List去除重复数据的五种方式

    作者:多纤果冻 blog.csdn.net/qq_37939251/article/details/90713643 以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据 1.使用 ...

  4. list过滤重复数据java_java中List去除重复数据的五种方式

    在使用java编码中,我们会经常遇到让List对象去重,最常见的是ArrayList去除重复的数据, 看似很简单的东西,其实里面是有很多学问的,下面介绍不同的方法去除java中ArrayList中的重 ...

  5. Java 去除重复数据的五种方式

    1.使用LinkedHashSet删除arraylist中的重复数据 LinkedHashSet是在一个ArrayList删除重复数据的最佳方法.LinkedHashSet在内部完成两件事: 删除重复 ...

  6. php随机数字不重复使等式成立_php随机数不重复生成的五种方式

    在前一篇文章中我介绍了php随机数的生成方法,我们都知道php随机数不管是在开发中,还是在移动应用中,都是不可少的一部分,平时日常开发中经常会跟php随机数打交道,那么今天就给大家介绍php随机数不重 ...

  7. java 判断数组已经存满_详解Java中数组判断元素存在几种方式比较

    1. 通过将数组转换成List,然后使用List中的contains进行判断其是否存在 public static boolean useList(String[] arr,String contai ...

  8. Java File.createNewFile 创建文件的四种方式小笔记

    本文为joshua317原创文章,转载请注明:转载自joshua317博客 Java File.createNewFile 创建文件的四种方式小笔记 - joshua317的博客 1.File(Str ...

  9. java中读取properties文件内容五种方式

    一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...

  10. java中map集合遍历的五种方式

    建立一个map,并存入数据 Map<Integer,Integer> map = new HashMap<>(); 第一种遍历方式,通过keySet() for(Integer ...

最新文章

  1. html es表达式传参,ES2015 正则表达式新增特性
  2. C# 在异步中使用HttpWebRequest出现的“正在终止线程”错误的解决方案
  3. Java接口(interface)的概念及使用
  4. RestTemplate的三种使用方式
  5. python的界面文字翻译_一个把网站全英文转成中文的方法,让你轻松看懂python官网...
  6. 测试用例设计方法 - 场景分析法
  7. OC与JS交互 初体会
  8. 一切想要发财的人,你都要善于看到隐形的东西
  9. 在三层交换上配置ciscoVTP实验
  10. B/S WEB端条码打印系统 斑马条码打印解决方案
  11. 科沃斯扫地机器人电路原理图_科沃斯扫地机器人不工作故障维修(CEN550)
  12. 金士顿服务器内存条怎么看型号,【查看内存条参数】 内存条上的参数怎么看...
  13. uv转化率多少正常_浏览量(PV)和访客数(UV)和跳出率是什么意思?
  14. 以退为进还是被逼无奈?创始人王劲离职后,景驰科技该何去何从?
  15. 23行代码下载逆水寒壁纸图片
  16. 绝地求生 Win10 崩溃解决办法 (提示cmd.exe应用程序错误0xc000124)
  17. chatgpt在中国怎么使用
  18. iOS 百思不得姐 项目
  19. CHROME扩展开发之·迁移到 Manifest V3
  20. URDF语法详解03_joint

热门文章

  1. 阿里旺旺新老版本共存
  2. Django框架rest_framework中APIView的as_view()源码解析、认证、权限、频率控制
  3. kickstart-F
  4. 英语发音规则---W字母
  5. Android Studio运行程序出现Session ‘app’: Error Launching activity 解决办法
  6. 公网服务器与局域网手机长连接
  7. vector,list,deque容器的迭代器简单介绍
  8. 机器学习之K-means算法:深入浅出K-Means算法
  9. matlab红字怎么删除,matlab-系统爱好者
  10. 拓端tecdat|R语言圆填充( Circle packing)算法圆堆图圆形空间填充算法可视化