在这篇文章中,我们将演示如何在列表中查找重复元素。 以下是一些例子。
示例#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<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); } }
执行上面示例代码,得到以下结果 –
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<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); } }
执行上面示例代码,得到以下结果 –
Elements : [One Three Two Three Four Five Four] Duplicate Elements : [Four Three]
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264156.html