如何在Java中实现数组元素去重的函数?
发布时间:2023-06-10 03:04:32
在Java中,有多种实现数组元素去重的方法。下面我将介绍三种代码实现方式。
1. 使用HashSet实现
HashSet是一种无序的集合,不允许有重复元素。因此我们可以利用HashSet去重数组。具体实现代码如下:
public static int[] removeDuplicate(int[] arr) {
HashSet<Integer> set = new HashSet<Integer>();
for (int i = 0; i < arr.length; i++) {
set.add(arr[i]);
}
int[] result = new int[set.size()];
int index = 0;
for (Integer i : set) {
result[index++] = i;
}
return result;
}
2. 使用Arrays.sort()和临时数组实现
利用java的Arrays.sort()函数可以对数组进行排序,排序后,重复元素就会相邻排列。因此,我们可以使用一个临时数组来存储去重后的元素。
具体实现代码如下:
public static int[] removeDuplicate(int[] arr) {
Arrays.sort(arr);
int[] temp = new int[arr.length];
int j = 0;
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] != arr[i + 1]) {
temp[j++] = arr[i];
}
}
temp[j++] = arr[arr.length - 1];
int[] result = new int[j];
for (int k = 0; k < j; k++) {
result[k] = temp[k];
}
return result;
}
3. 使用双层循环实现
这是一种效率较低的实现方法,但代码较为简单易懂。
具体实现代码如下:
public static int[] removeDuplicate(int[] arr) {
int len = arr.length;
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
arr[j] = arr[len - 1];
len--;
j--;
}
}
}
int[] result = new int[len];
for (int i = 0; i < len; i++) {
result[i] = arr[i];
}
return result;
}
以上三种方式均可实现数组元素去重的函数。在实际的开发过程中,我们可以根据实际情况选择合适的方式进行处理。
