Zcopy.site

从Java List中查找重复元素的方法

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

示例#1

我们将使用Set集合来识别副本,因为Set是不同元素的无序列表。

如果Set的add()方法返回false,则表示列表中已存在一个元素。

文件:DuplicateInArrayExample1.java -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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<String> 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<String> set=new HashSet<>();
Set<String> duplicateElements=new HashSet<>();

for (String element : elements) {
if(!set.add(element)){
duplicateElements.add(element);
}
}

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

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

1
2
Elements : [One Three Two Three Four Five Four]
Duplicate Elements : [Four Three]

示例#2

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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<String> 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<String> 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);
}
}

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

1
2
Elements : [One Three Two Three Four Five Four]
Duplicate Elements : [Four Three]