示例1:使用Set从ArrayList中删除重复的元素
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
class Main {
public static void main(String[] args) {
// create an arraylist from the array
// using asList() method of the Arrays class
ArrayList numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3));
System.out.println("ArrayList with duplicate elements: " + numbers);
// convert the arraylist into a set
Set set = new LinkedHashSet<>();
set.addAll(numbers);
// delete al elements of arraylist
numbers.clear();
// add element from set to arraylist
numbers.addAll(set);
System.out.println("ArrayList without duplicate elements: " + numbers);
}
}
输出
ArrayList with duplicate elements: [1, 2, 3, 4, 1, 3]
ArrayList without duplicate elements: [1, 2, 3, 4]
在上面的示例中,我们创建了一个名为Numbers的数组列表 。 arraylist包含重复的元素。
要从arraylist中删除重复的元素,我们有
- 将arraylist中的所有元素添加到集合中
- 使用
clear()
方法清空arraylist - 将集合中的所有元素添加到arraylist
在这里,我们使用LinkedHashSet
创建一个集合。这是因为它删除重复的元素并保持插入顺序。要了解更多信息,请访问Java LinkedHashSet。
示例2:使用Stream从ArrayList中删除重复的元素
import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.stream.Stream;
class Main {
public static void main(String[] args) {
// create an arraylist from the array
// using asList() method of the Arrays class
ArrayList numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3));
System.out.println("ArrayList with duplicate elements: " + numbers);
// create a stream from arraylist
Stream stream = numbers.stream();
// call the distinct() of Stream
// to remove duplicate elements
stream = stream.distinct();
// convert the stream to arraylist
numbers = (ArrayList)stream.collect(Collectors.toList());
System.out.println("ArrayList without duplicate elements: " + numbers);
}
}
输出
ArrayList with duplicate elements: [1, 2, 3, 4, 1, 3]
ArrayList without duplicate elements: [1, 2, 3, 4]
在上面的示例中,我们创建了一个名为Numbers的数组列表 。 arraylist包含重复的元素。
在这里,我们使用Stream类从arraylist中删除重复的元素。
- Numbers.stream() -从arraylist创建一个流
- stream.distinct() -删除重复的元素
- stream.collect(Collectors.toList()) -从流中返回列表
在这里,我们使用类型转换将返回的列表转换为arraylist。