java里怎么去除整数数组重复

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

java里怎么去除整数数组重复

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<Integer> 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);
    }
}

以上就是java里怎么去除整数数组重复的详细内容,更多请关注硕下网其它相关文章!