在Java中实现数组去重功能有很多种方法,比如使用哈希表,使用双重循环,使用排序,使用Set集合,使用JDK8新特性等等。下面我们将详细介绍每一种方法的实现步骤。
1. 使用哈希表实现数组去重功能
使用哈希表实现数组去重功能是最常用的方法,它的实现思路是:遍历数组,将数组中的元素放入哈希表中,遍历哈希表,将哈希表中的元素放入新的数组中,返回新的数组即可。代码实现如下:
public static int[] removeDuplicates(int[] arr) {
HashSet set = new HashSet<>();
for (int i = 0; i < arr.length; i++) {
set.add(arr[i]);
}
int[] newArr = new int[set.size()];
int j = 0;
for (Integer num : set) {
newArr[j++] = num;
}
return newArr;
}
2. 使用双重循环实现数组去重功能
使用双重循环实现数组去重功能的思路是:遍历数组,将每个元素与其他元素比较,如果发现有重复的元素,则将其删除,将剩余的元素放入新的数组中,返回新的数组即可。代码实现如下:
public static int[] removeDuplicates(int[] arr) {
int[] newArr = new int[arr.length];
int j = 0;
for (int i = 0; i < arr.length; i++) {
boolean isDuplicated = false;
for (int k = 0; k < arr.length; k++) {
if (i != k && arr[i] == arr[k]) {
isDuplicated = true;
break;
}
}
if (!isDuplicated) {
newArr[j++] = arr[i];
}
}
return Arrays.copyOf(newArr, j);
}
3. 使用排序实现数组去重功能
使用排序实现数组去重功能的思路是:先对数组进行排序,遍历排序后的数组,将重复的元素去除,将剩余的元素放入新的数组中,返回新的数组即可。代码实现如下:
public static int[] removeDuplicates(int[] arr) {
Arrays.sort(arr);
int[] newArr = new int[arr.length];
int j = 0;
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] != arr[i + 1]) {
newArr[j++] = arr[i];
}
}
newArr[j++] = arr[arr.length - 1];
return Arrays.copyOf(newArr, j);
}
4. 使用Set集合实现数组去重功能
使用Set集合实现数组去重功能的思路是:将数组中的元素放入Set集合中,因为Set集合不能存储重复的元素,所以可以达到去重的目的,将Set集合中的元素放入新的数组中,返回新的数组即可。代码实现如下:
public static int[] removeDuplicates(int[] arr) {
Set set = new HashSet<>();
for (int i = 0; i < arr.length; i++) {
set.add(arr[i]);
}
int[] newArr = new int[set.size()];
int j = 0;
for (Integer num : set) {
newArr[j++] = num;
}
return newArr;
}
5. 使用JDK8新特性实现数组去重功能
使用JDK8新特性实现数组去重功能的思路是:使用JDK8新增的Stream API,将数组转换为Stream,使用distinct()方法去除重复元素,将Stream转换为数组,返回新的数组即可。代码实现如下:
public static int[] removeDuplicates(int[] arr) {
return Arrays.stream(arr).distinct().toArray();
}
以上就是Java中实现数组去重功能的5种方法,每种方法都有自己的优点