有三种方法去除 Java 数组中重复元素:1)使用 Set 存储唯一元素并将其转换为数组;2)对数组进行排序并使用双指针跳过重复元素;3)使用 HashMap 记录元素出现次数并保留仅出现一次的元素。
如何去除 Java 数组中的重复元素
方法 1:使用 Set
Set 是一个不允许重复元素的集合。我们可以使用 HashSet 来去除数组中的重复元素:
public int[] removeDuplicates(int[] arr) { Set<Integer> set = new HashSet<>(); for (int i = 0; i < arr.length; i++) { set.add(arr[i]); } int[] result = new int[set.size()]; int index = 0; for (int num : set) { result[index++] = num; } return result; }
方法 2:使用排序和双指针
立即学习“Java免费学习笔记(深入)”;
对数组进行排序后,重复元素会相邻。我们可以使用双指针来遍历数组,跳过重复元素:
public int[] removeDuplicates(int[] arr) { if (arr.length == 0) { return arr; } Arrays.sort(arr); int i = 0, j = 1; while (j < arr.length) { if (arr[i] != arr[j]) { arr[++i] = arr[j]; } j++; } return Arrays.copyOf(arr, i + 1); }
方法 3:使用 HashMap
HashMap 是一个键值对集合。我们可以使用 HashMap 来记录数组中每个元素出现的次数,然后只保留出现一次的元素:
public int[] removeDuplicates(int[] arr) { Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < arr.length; i++) { if (!map.containsKey(arr[i])) { map.put(arr[i], 0); } map.put(arr[i], map.get(arr[i]) + 1); } int[] result = new int[map.size()]; int index = 0; for (int num : map.keySet()) { result[index++] = num; } return result; }
以上就是java数组怎么去掉重复的的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号