java去除数组中重复数据
时间: 2024-09-20 20:08:21 浏览: 53
在Java中,有多种方法可以去除数组中的重复数据。以下是几种常见的方法:
1. **HashSet**:
使用`HashSet`是因为它不允许有重复元素,你可以将数组转换为`HashSet`,然后再将其转换回数组。这会自动去重。
```java
import java.util.Arrays;
import java.util.HashSet;
public int[] removeDuplicates(int[] arr) {
HashSet<Integer> set = new HashSet<>();
for (int num : arr) {
set.add(num);
}
return set.toArray(new int[set.size()]);
}
```
2. **Arrays.copyOf() + Stream API**:
如果你对现代Java版本熟悉,可以利用Stream API来简化操作:
```java
import java.util.Arrays;
import java.util.stream.IntStream;
public int[] removeDuplicates(int[] arr) {
return IntStream.of(arr).distinct().toArray();
}
```
3. **暴力法(双指针)**:
对于小型数组,可以用两个指针从头到尾遍历并比较,将第一个未见过的值复制到新数组中。
```java
public int[] removeDuplicates(int[] arr) {
if (arr == null || arr.length <= 1) {
return arr;
}
int[] result = new int[arr.length];
int j = 0;
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] != arr[i + 1]) {
result[j++] = arr[i];
}
}
result[j] = arr[arr.length - 1]; // 将最后一个元素添加到结果数组
return Arrays.copyOf(result, j + 1); // 返回去重后的数组
}
```
阅读全文