给定一个包含整数的列表,其中可能包含重复值和缺失值(用null表示)。编写一个Java程序来清洗数据,去除重复值和缺失值 给定一个包含整数的列表,其中可能包含重复值和缺失值(用null表示)。编写一个Java程序来清洗数据,去除重复值和缺失值
时间: 2024-09-15 12:07:39 浏览: 30
FindTheFirstMissingPositiveNumber:给定正负整数数组,找到第一个缺失的正整数
在Java中,你可以通过以下步骤来清洗这个列表:
1. 首先,你需要创建一个HashSet来存储不重复的元素。HashSet不允许重复元素,所以它会自动去除重复值。
```java
Set<Integer> uniqueValues = new HashSet<>();
```
2. 然后遍历输入列表,对于每个元素,检查它是否为null(代表缺失值)。如果是null,则跳过;如果不是null,则将其添加到uniqueValues集合中。
```java
List<Integer> inputList = ...; // 输入列表
for (Integer value : inputList) {
if (value != null) {
uniqueValues.add(value);
}
}
```
3. 最后,你可以将去重后的集合转换回列表,得到清洗过的数据。但由于HashSet不保证顺序,如果你需要保持原始顺序,可以使用LinkedHashSet替换HashSet。
```java
List<Integer> cleanedList = new ArrayList<>(uniqueValues);
```
完整的代码示例:
```java
import java.util.*;
public List<Integer> cleanData(List<Integer> inputList) {
Set<Integer> uniqueValues = new LinkedHashSet<>();
for (Integer value : inputList) {
if (value != null) {
uniqueValues.add(value);
}
}
return new ArrayList<>(uniqueValues);
}
// 使用示例
List<Integer> inputData = Arrays.asList(1, null, 2, 3, 1, null, 4, 5, 2);
List<Integer> cleanedData = cleanData(inputData);
System.out.println(cleanedData); // 输出 [1, 2, 3, 4, 5]
阅读全文