去除集合中的重复元素(Java)

您所在的位置:网站首页 arraylist去除元素 去除集合中的重复元素(Java)

去除集合中的重复元素(Java)

2023-11-23 00:00| 来源: 网络整理| 查看: 265

前言:

如果集合中有重复数据,你会怎么去重呢,我用的最多的是第一种,接下来随着小编一起往下看吧!

第一部分: (1)使用Set 去重(无顺序) //第一种方式,打印出来的数据是没有顺序的。 List allList = new ArrayList(Arrays.asList("soup", "soup_tang", "csdn", "soup_tang", "tang", "csdn")); Set set = new HashSet(allList); allList = new ArrayList(set); for (String s : allList) { System.out.println("去除后的值为:-----" + s); }

效果展示:

 

 

(2)使用Set去重(有顺序) //第二种方式,保留数据先后顺序的一个去重 ,TreeSet 可以按照自然排序。 HashSet是无序的。 List allList2 = new ArrayList(Arrays.asList("soup", "soup_tang", "csdn", "soup_tang", "tang", "csdn")); Set set2 = new LinkedHashSet(allList2); allList2 = new ArrayList(set2); for (String s : allList2) { System.out.println("去除后的值为:-----" + s); }

效果展示:

 

(3)循环List 中的元素去重 List allList3 = new ArrayList(Arrays.asList("soup", "soup_tang", "csdn", "soup_tang", "tang", "csdn")); for (int i = 0; i < allList3.size() - 1; i++) { for (int j = allList3.size() - 1; j > i; j--) { if (allList3.get(j).equals(allList3.get(i))) { allList3.remove(j); } } } for (String s : allList3) { System.out.println("去重后的值:-----" + s); }

 

展示效果:

 

(4)使用List的contains() 方法 /** * 3.把list里的对象遍历一遍,用list.contains(),如果不存在就放入到另外一个list集合中 */ List allList4 = new ArrayList(Arrays.asList("soup", "soup_tang", "csdn", "soup_tang", "tang", "csdn")); List listTemp = new ArrayList(); for (int i = 0; i < allList4.size(); i++) { if (!listTemp.contains(allList4.get(i))) { listTemp.add(allList4.get(i)); } } for (String s : listTemp) { System.out.println("去重后的值:--------" + s); }

展示效果:

 

总结:

当然了,小编只是总结一小部分,不是很全,Collections 集合操作类,Stream 好像也可以达到这些效果,我这里就不一一展开了。

 全部代码:

package com.test.nodefault; import java.util.*; /** * @Author tanghh * @Date 2020/3/6 10:45 * 对集合中的元素去重 * https://www.cnblogs.com/zhaoyan001/p/11737961.html */ public class TestList { public static void main(String[] args) { /** * 1.通过Set去重 */ //第一种方式,打印出来的数据是没有顺序的。 List allList = new ArrayList(Arrays.asList("soup", "soup_tang", "csdn", "soup_tang", "tang", "csdn")); Set set = new HashSet(allList); allList = new ArrayList(set); for (String s : allList) { System.out.println("去除后的值为:-----" + s); } System.out.println("第二种方式:----------------------------------"); //第二种方式,保留数据先后顺序的一个去重 ,TreeSet 可以按照自然排序。 HashSet是无序的。 List allList2 = new ArrayList(Arrays.asList("soup", "soup_tang", "csdn", "soup_tang", "tang", "csdn")); Set set2 = new LinkedHashSet(allList2); allList2 = new ArrayList(set2); for (String s : allList2) { System.out.println("去除后的值为:-----" + s); } System.out.println("第三种方式:----------------------------------"); /** * 2.循环list 中的元素然后删除 */ //第三种方式,去除集合中的重复元素 List allList3 = new ArrayList(Arrays.asList("soup", "soup_tang", "csdn", "soup_tang", "tang", "csdn")); for (int i = 0; i < allList3.size() - 1; i++) { for (int j = allList3.size() - 1; j > i; j--) { if (allList3.get(j).equals(allList3.get(i))) { allList3.remove(j); } } } for (String s : allList3) { System.out.println("去重后的值:-----" + s); } System.out.println("第四种方式:----------------------------------"); /** * 3.把list里的对象遍历一遍,用list.contains(),如果不存在就放入到另外一个list集合中 */ List allList4 = new ArrayList(Arrays.asList("soup", "soup_tang", "csdn", "soup_tang", "tang", "csdn")); List listTemp = new ArrayList(); for (int i = 0; i < allList4.size(); i++) { if (!listTemp.contains(allList4.get(i))) { listTemp.add(allList4.get(i)); } } for (String s : listTemp) { System.out.println("去重后的值:--------" + s); } } }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3