要从ArrayList中删除重复项,有两种方法,
在HashSet的帮助下
借助LinkedHashSet
此类在java.util包中可用。
通过使用HashSet类,我们可以从ArrayList中删除重复的元素。
如果是HashSet,则在删除重复元素后,将不保留元素的插入顺序(即,元素的检索顺序不需要与插入顺序相同)。
使用HashSet从ArrayList中删除重复元素的过程:
将ArrayList元素复制到HashSet。
复制后,使用clear()
方法清除ArrayList 。
再次将HashSet元素复制到ArrayList。
示例
//Java程序演示的例子 //从ArrayList中删除重复的元素 //通过使用HashSet。 import java.util.*; public class RemovedDuplicateFromArrayList { public static void main(String[] args) { //ArrayList声明 ArrayList al = new ArrayList(); //添加一些元素 //ArrayList- al.add(10); al.add(10); al.add(20); al.add(20); al.add(30); //显示重复的ArrayList- System.out.print("Display ArrayList with duplicates : " + " "); System.out.println(al); //HashSet声明 HashSet hs = new HashSet(); //通过使用addAll()方法是添加所有元素 //到HashSet- hs.addAll(al); //通过使用clear()方法是清除ArrayList- al.clear(); //再次使用addAll()方法是添加所有元素 //到ArrayList- al.addAll(hs); //显示没有重复的ArrayList- System.out.print("Display ArrayList with no duplicates : " + " "); System.out.println(al); } }
输出结果
Display ArrayList with duplicates : [10, 10, 20, 20, 30] Display ArrayList with no duplicates : [20, 10, 30]
此类在java.util包中可用。
通过使用LinkedHashSet类,我们可以从ArrayList中删除重复的元素。
对于LinkedHashSet,在删除重复元素之后,将保留元素的插入顺序(即,元素的检索顺序必须与插入顺序相同)。
使用LinkedHashSet从ArrayList中删除重复元素的过程:
将ArrayList元素复制到LinkedHashSet。
复制后,使用clear()
方法清除ArrayList 。
再次将LinkedHashSet元素复制到ArrayList。
示例
//Java程序演示的例子 //从ArrayList中删除重复的元素 //通过使用LinkedHashSet。 import java.util.*; public class RemovedDuplicateFromArrayList { public static void main(String[] args) { //ArrayList声明 ArrayList al = new ArrayList(); //添加一些元素 //ArrayList- al.add(10); al.add(10); al.add(20); al.add(20); al.add(30); //显示重复的ArrayList- System.out.print("Display ArrayList with duplicates : " + " "); System.out.println(al); //LinkedHashSet声明 LinkedHashSet lhs = new LinkedHashSet(); //通过使用addAll()方法是添加所有元素 //到LinkedHashSet- lhs.addAll(al); //通过使用clear()方法是清除ArrayList- al.clear(); //再次使用addAll()方法是添加所有元素 //到ArrayList- al.addAll(lhs); //显示没有重复的ArrayList- System.out.print("Resultant ArrayList : " + " "); System.out.println(al); } }
输出结果
Display ArrayList with duplicates : [10, 10, 20, 20, 30] Resultant ArrayList : [10, 20, 30]