Java 数组去重方法:使用 Set:创建 Set 去除重复元素,转换为新数组。使用 Sort 和二分查找:排序数组,查找每个元素出现位置,去除重复元素。使用 HashMap:以元素为键,出现次数为值,去除出现次数大于 1 的元素。

Java 数组去重
在 Java 中,数组去重是指从数组中移除重复元素,仅保留唯一元素。以下几种方法可以实现数组去重:
1. 使用 Set
Set 是一种集合,它不会保留重复元素。我们可以将数组元素转换为 Set,然后将其转换为一个新数组。
立即学习“Java免费学习笔记(深入)”;
int[] arr = {1, 2, 3, 4, 5, 1, 2, 3};
// 创建一个 Set
Set set = new HashSet<>(Arrays.asList(arr));
// 将 Set 转换为数组
int[] result = set.stream().mapToInt(Integer::intValue).toArray(); 2. 使用 Sort 和二分查找
我们可以先对数组进行排序,然后使用二分查找查找每个元素的第一个和最后一个出现位置。重复元素的位置差将大于 1,因此可以根据此差值过滤重复元素。
Arrays.sort(arr);
int[] result = new int[arr.length];
int index = 0;
for (int i = 0; i < arr.length; i++) {
int first = binarySearch(arr, i, arr.length - 1, arr[i]);
int last = binarySearch(arr, i, arr.length - 1, arr[i], true);
if (last - first <= 1) {
result[index++] = arr[i];
}
i = last;
}3. 使用 HashMap
HashMap 是一种键值对集合,我们可以将每个数组元素作为键,其出现次数作为值。然后,我们可以遍历 HashMap,只保留出现次数为 1 的元素。
HashMapmap = new HashMap<>(); for (int num : arr) { map.put(num, map.getOrDefault(num, 0) + 1); } int[] result = new int[map.size()]; int index = 0; for (Integer key : map.keySet()) { if (map.get(key) == 1) { result[index++] = key; } }











