java set查找相同元素_在List中查找重复元素

在这篇文章中,我们将演示如何在列表中查找重复元素。 以下是一些例子。

示例#1

我们将使用Set集合来识别副本,因为Set是不同元素的无序列表。 如果Set的add()方法返回false,则表示列表中已存在一个元素。

文件:DuplicateInArrayExample1.java -

import java.util.ArrayList;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

public class DuplicateInArrayExample1 {

public static void main(String[] args) {

List elements=new ArrayList<>();

elements.add("One");

elements.add("Three");

elements.add("Two");

elements.add("Three"); /*Duplicate Element*/

elements.add("Four");

elements.add("Five");

elements.add("Four"); /*Duplicate Element*/

System.out.println("Elements : "+elements);

Set set=new HashSet<>();

Set duplicateElements=new HashSet<>();

for (String element : elements) {

if(!set.add(element)){

duplicateElements.add(element);

}

}

System.out.println("Duplicate Elements : "+duplicateElements);

}

}

执行上面示例代码,得到以下结果 -

Elements : [One Three Two Three Four Five Four]

Duplicate Elements : [Four Three]

示例#2

在这个方法中,我们将首先使用Collections.sort()方法对列表元素进行排序,然后在单个循环中比较相邻元素。参考以下示例代码 -

import java.util.ArrayList;

import java.util.Collections;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

public class DuplicateInArrayExample2 {

public static void main(String[] args) {

List elements=new ArrayList<>();

elements.add("One");

elements.add("Three");

elements.add("Two");

elements.add("Three"); /*Duplicate Element*/

elements.add("Four");

elements.add("Five");

elements.add("Four"); /*Duplicate Element*/

System.out.println("Elements : "+elements);

Set duplicateElements=new HashSet<>();

Collections.sort(elements);

for (int i = 1; i < elements.size(); i++) {

if(elements.get(i-1).equals(elements.get(i))){

duplicateElements.add(elements.get(i));

}

}

System.out.println("Duplicate Elements : "+duplicateElements);

}

}

执行上面示例代码,得到以下结果 -

Elements : [One Three Two Three Four Five Four]

Duplicate Elements : [Four Three]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值