如何从ArrayList
中删除重复项
原文:https://www.studytonight.com/java-examples/how-to-remove-duplicates-from-arraylist
在这篇文章中,我们将从 Java 中的ArrayList
中移除重复的元素。ArrayList
是集合框架中 List 接口的实现类,用于存储数据的类。
由于ArrayList
允许我们存储重复的元素,因此有时我们需要从ArrayList
中获取唯一的元素,然后我们必须删除重复的元素。
要删除重复项,有一个简单易行的方法,只需将ArrayList
转换为HashSet
,即可获得唯一的元素。因为 HashSet 只存储唯一的元素。它会自动删除所有重复项。
因此,为了消除重复,我们使用了两种方法,一种是转换为 HashSet,另一种是使用 stream 的 distinct()方法,该方法从流中返回唯一的元素。请看例子。
举例时间:
让我们创建一个从ArrayList
中删除所有重复项的例子。在这里,我们使用 HashSet 并将 Arraylist 作为 n 参数传递给它的构造器。它返回一个唯一的集合,但是我们需要一个ArrayList
,所以通过将它传递给ArrayList
构造器,将其转换回ArrayList
。
import java.util.ArrayList;
import java.util.HashSet;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1030);
System.out.println(arrList1);
// Remove duplicates
HashSet<Integer> set = new HashSet<Integer>(arrList1);
// Convert back to ArrayList
arrList1 = new ArrayList<Integer>(set);
System.out.println(arrList1);
}
}
【1030,1020,1010,1030】 【1010,1030,1020】
示例:
如果你不想把ArrayList
转换成HashSet
,那么你可以使用另一种方法蒸汽 API。流提供了一个distinct()
方法,从流中删除重复项,toList()
方法返回一个唯一元素的列表。
import java.util.ArrayList;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1030);
System.out.println(arrList1);
// Remove duplicates
arrList1 = (ArrayList<Integer>)arrList1.stream().distinct().collect(Collectors.toList());
System.out.println(arrList1);
}
}
【1030,1020,1010,1030】 【1030,1020,1010】