java整型数组去重
时间: 2024-08-13 16:02:21 浏览: 89
在 Java 中,整型数组去重可以采用几种常见的方法:
1. **利用HashSet**:将数组元素添加到 HashSet 中,由于 HashSet 的特性不允许有重复元素,所以最后集合的大小就是去重后的元素数,然后再将其转换回数组。
```java
import java.util.*;
public int[] removeDuplicates(int[] arr) {
Set<Integer> set = new HashSet<>();
for (int num : arr) {
set.add(num);
}
return set.stream().mapToInt(Integer::intValue).toArray();
}
```
2. **使用双指针法**:创建两个指针,一个用于遍历整个数组,另一个用于检查已存在的元素。如果当前元素未在之前遇到过,则复制到新数组中。
```java
public int[] removeDuplicates(int[] arr) {
if (arr == null || arr.length == 0) {
return arr;
}
int[] res = new int[arr.length];
int j = 0;
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] != arr[i + 1]) {
res[j++] = arr[i];
}
}
// 添加最后一个元素,因为循环结束时j可能未达到最大值
res[j++] = arr[arr.length - 1];
return Arrays.copyOf(res, j);
}
```
3. **使用排序+遍历**:先对数组进行排序,然后从第二个元素开始遍历,如果当前元素大于前面的任何一个元素,则添加到结果数组中。
```java
public int[] removeDuplicates(int[] arr) {
Arrays.sort(arr);
int n = arr.length;
if (n <= 1) {
return arr;
}
int result[] = new int[n];
result = arr;
for (int i = 1; i < n; i++) {
if (arr[i] != arr[i - 1]) {
result[i] = arr[i];
}
}
return result;
}
```
阅读全文