在 Java 中去除整数数组中重复元素有以下两种方法:使用 Set:将数组转换为 Set,去除重复元素再转换回数组。使用 Arrays.sort() 和双指针:先对数组排序,然后使用双指针扫描数组,跳过重复元素,将去重元素填入新数组。

Java 中去除整数数组中重复元素的方法
使用 Set
- 使用 HashSet 或 TreeSet 等 Set 类型的数据结构,它们天然具有去除重复元素的特性。
- 将整数数组转换为 Set,这样会自动去除重复元素。
- 然后将其转换回整数数组即可。
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
class Solution {
public int[] removeDuplicates(int[] nums) {
Set set = new HashSet<>(Arrays.asList(nums));
return set.stream().mapToInt(i -> i).toArray();
}
} 使用 Arrays.sort() 和双指针
- 首先对数组进行排序,这样重复元素会相邻排列。
- 使用两个指针 i 和 j。i 指向当前元素,j 指向去重后的数组中的下一个空位置。
- 当 i 和 j 所指向的元素相等时,跳过 i 直到它指向不同的元素。
- 当 i 和 j 所指向的元素不同时,将 j 所指向的元素替换为 i 所指向的元素,并向右移动 j。
import java.util.Arrays;
class Solution {
public int[] removeDuplicates(int[] nums) {
if (nums.length == 0) {
return nums;
}
Arrays.sort(nums);
int i = 0, j = 1;
while (j < nums.length) {
if (nums[i] == nums[j]) {
j++;
} else {
nums[j++] = nums[i++];
}
}
return Arrays.copyOfRange(nums, 0, j);
}
}










