java怎么数组去重

ID:17576 / 打印
java 数组去重方法:使用 set:创建 set 去除重复元素,转换为新数组。使用 sort 和二分查找:排序数组,查找每个元素出现位置,去除重复元素。使用 hashmap:以元素为键,出现次数为值,去除出现次数大于 1 的元素。

java怎么数组去重

Java 数组去重

在 Java 中,数组去重是指从数组中移除重复元素,仅保留唯一元素。以下几种方法可以实现数组去重:

1. 使用 Set

Set 是一种集合,它不会保留重复元素。我们可以将数组元素转换为 Set,然后将其转换为一个新数组。

立即学习“Java免费学习笔记(深入)”;

int[] arr = {1, 2, 3, 4, 5, 1, 2, 3};  // 创建一个 Set Set<Integer> 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 的元素。

HashMap<Integer, Integer> map = 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;     } }
上一篇: java数组怎么计算的
下一篇: java怎么清理char数组

作者:admin @ 24资源网   2024-11-27

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。