在此示例中,我们将学习如何用Java删除ArrayList中的重复元素。
要理解此示例,您应该了解以下Java编程主题:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
class Main {
public static void main(String[] args) {
//从数组创建一个arraylist
//使用Arrays类的asList()方法
ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3));
System.out.println("具有重复元素的ArrayList: " + numbers);
//将arraylist转换为set
Set<Integer> set = new LinkedHashSet<>();
set.addAll(numbers);
//删除arraylist的所有元素
numbers.clear();
//将元素从set集合添加到arraylist
numbers.addAll(set);
System.out.println("没有重复元素的ArrayList: " + numbers);
}
}输出结果
具有重复元素的ArrayList: [1, 2, 3, 4, 1, 3] 没有重复元素的ArrayList: [1, 2, 3, 4]
在上面的示例中,我们创建了一个名为 numbers 的数组列表。arraylist包含重复的元素。
要从arraylist中删除重复的元素,我们需要:
将 arraylist 中的所有元素添加到 set 集合中
使用 clear() 方法清空 arraylist
再将set 集合中的所有元素添加到 arraylist 中
在这里,我们使用 LinkedHashSet 来创建集合。这是因为它删除重复的元素并保持插入的顺序。要了解更多信息,请访问Java LinkedHashSet。
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) {
//从数组创建一个arraylist
//使用Ararray类的asList()方法
ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3));
System.out.println("具有重复元素的ArrayList: " + numbers);
//从数组列表创建流
Stream<Integer> stream = numbers.stream();
//调用 Stream 的 distinct ()
//删除重复的元素
stream = stream.distinct();
//将流转换为arraylist
numbers = (ArrayList<Integer>)stream.collect(Collectors.toList());
System.out.println("没有重复元素的ArrayList: " + numbers);
}
}输出结果
具有重复元素的ArrayList: [1, 2, 3, 4, 1, 3] 没有重复元素的ArrayList: [1, 2, 3, 4]
在上面的示例中,我们创建了一个名为 numbers 的数组列表。arraylist包含重复的元素。
在这里,我们使用Stream类从arraylist中删除重复的元素。
Numbers.stream() - 从arraylist创建一个流
stream.distinct() - 删除重复的元素
stream.collect(Collectors.toList()) - 从流中返回列表
在这里,我们使用类型转换将返回的列表转换为 arraylist。