在本节中,我们将演示如何从ArrayList中删除重复的元素。
- 在Java中,List是元素的顺序序列,Set是不同的元素列表序列。
- 通过将Arraylist转换为HashSet或LinkedHashSet,可以从列表中删除重复的元素。
以下是一些例子 -
文件:RemoveDuplicateFromList1.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
| package site.zcopy.blog;
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set;
public class RemoveDuplicateFromList1 { public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("One"); list.add("Two"); list.add("Three"); list.add("Three"); list.add("Four"); list.add("Five"); list.add("Six"); list.add("Six");
System.out.println("Before : "+list); Set<String> set=new HashSet<>();
for (String string : list) { set.add(string); } System.out.println("After : "+set); } }
|
在这个例子中,我们使用for-each
循环和HashSet的add方法来删除重复的元素。
执行上面示例代码,得到以下结果 -
1 2
| Before : [One Two Three Three Four Five Six Six] After : [Five Six One Four Two Three]
|
文件:RemoveDuplicateFromList2.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
| package site.zcopy.blog;
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set;
public class RemoveDuplicateFromList2 { public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("One"); list.add("Two"); list.add("Three"); list.add("Three"); list.add("Four"); list.add("Five"); list.add("Six"); list.add("Six");
System.out.println("Before : "+list); Set<String> set=new HashSet<>(list); System.out.println("After: "+set); } }
|
在这个例子中,使用HashSet的构造函数来删除重复的元素。执行上面示例代码,得到以下结果
Before : [One Two Three Three Four Five Six Six]
After : [Five Six One Four Two Three]
文件:RemoveDuplicateFromList3.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
| package site.zcopy.blog;
import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set;
public class RemoveDuplicateFromList3 { public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("One"); list.add("Two"); list.add("Three"); list.add("Three"); list.add("Four"); list.add("Five"); list.add("Six"); list.add("Six");
System.out.println("Before : "+list); Set<String> set=new LinkedHashSet<>(list); System.out.println("After : "+set); } }
|
在这个例子中,使用LinkedHashSet的构造函数来删除重复的元素。LinkedHashSet保持元素的顺序与列表相同。
执行上面示例代码,得到以下结果 -
1 2
| Before : [One Two Three Three Four Five Six Six] After : [One Two Three Four Five Six]
|