在这篇文章中,我们将演示如何在列表中查找重复元素。 以下是一些例子。
示例#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"); elements.add("Four"); elements.add("Five"); elements.add("Four");
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"); elements.add("Four"); elements.add("Five"); elements.add("Four");
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]
|