Java Stream去重:数组转集合并移除重复元素
要使用Stream流对数组进行去重,可以使用Stream.of方法将数组转换为Stream流,然后调用distinct方法进行去重。最后可以使用collect方法将Stream流转换为集合。
以下是一个示例代码:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 2, 1, 5, 3};
List<Integer> distinctList = Arrays.stream(array)
.distinct()
.boxed()
.collect(Collectors.toList());
System.out.println(distinctList);
}
}
输出结果为:[1, 2, 3, 4, 5]
在上述代码中,使用Arrays.stream方法将数组转换为IntStream流,然后调用distinct方法进行去重。由于distinct方法返回的是IntStream流,而我们需要得到的是List集合,所以需要调用boxed方法将流中的元素转换为包装类型Integer。最后使用collect方法将流转换为List集合。
注意:上述代码中的distinct方法是针对整数数组的去重操作。如果是一个对象数组,需要重写对象的equals和hashCode方法,并且使用distinct方法时传入一个自定义的比较器。
原文地址: https://www.cveoy.top/t/topic/qkKj 著作权归作者所有。请勿转载和采集!