在Java中实现数组去重功能有很多种方法,比如使用哈希表,使用双重循环,使用排序,使用Set集合,使用JDK8新特性等等。下面我们将详细介绍每一种方法的实现步骤。
1. 使用哈希表实现数组去重功能
使用哈希表实现数组去重功能是最常用的方法,它的实现思路是:遍历数组,将数组中的元素放入哈希表中,遍历哈希表,将哈希表中的元素放入新的数组中,返回新的数组即可。代码实现如下:
public static int[] removeDuplicates(int[] arr) { HashSetset = 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) { Setset = 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种方法,每种方法都有自己的优点