去除数组中的重复数据JAVA
时间: 2023-05-10 13:55:14 浏览: 118
可以使用 HashSet 来去除数组中的重复数据,具体代码如下:
int[] arr = {1, 2, 3, 2, 4, 5, 3};
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 (Integer num : set) {
result[index++] = num;
}
System.out.println(Arrays.toString(result));
相关问题
java去除数组中重复数据
在Java中,有多种方法可以去除数组中的重复数据。以下是几种常见的方法:
1. **HashSet**:
使用`HashSet`是因为它不允许有重复元素,你可以将数组转换为`HashSet`,然后再将其转换回数组。这会自动去重。
```java
import java.util.Arrays;
import java.util.HashSet;
public int[] removeDuplicates(int[] arr) {
HashSet<Integer> set = new HashSet<>();
for (int num : arr) {
set.add(num);
}
return set.toArray(new int[set.size()]);
}
```
2. **Arrays.copyOf() + Stream API**:
如果你对现代Java版本熟悉,可以利用Stream API来简化操作:
```java
import java.util.Arrays;
import java.util.stream.IntStream;
public int[] removeDuplicates(int[] arr) {
return IntStream.of(arr).distinct().toArray();
}
```
3. **暴力法(双指针)**:
对于小型数组,可以用两个指针从头到尾遍历并比较,将第一个未见过的值复制到新数组中。
```java
public int[] removeDuplicates(int[] arr) {
if (arr == null || arr.length <= 1) {
return arr;
}
int[] result = new int[arr.length];
int j = 0;
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] != arr[i + 1]) {
result[j++] = arr[i];
}
}
result[j] = arr[arr.length - 1]; // 将最后一个元素添加到结果数组
return Arrays.copyOf(result, j + 1); // 返回去重后的数组
}
```
给定一个数组去除数组中重复的数据 返回去重后的数组 用java
在 Java 中,去除数组中的重复元素可以使用多种方法,这里我将介绍一种常见的做法,即使用HashSet数据结构。HashSet基于哈希表实现,其中的元素不允许有重复,非常适合用于去重。
```java
import java.util.HashSet;
import java.util.Arrays;
public class RemoveDuplicates {
public static int[] removeDuplicates(int[] arr) {
// 创建一个新的HashSet
HashSet<Integer> set = new HashSet<>();
// 遍历原数组,将非重复元素添加到HashSet中
for (int num : arr) {
set.add(num);
}
// 将HashSet转换回数组
int[] result = new int[set.size()];
int index = 0;
for (Integer num : set) {
result[index++] = num; // 注意索引更新
}
return result;
}
public static void main(String[] args) {
int[] inputArray = {1, 2, 3, 4, 5, 2, 3, 6};
int[] uniqueArray = removeDuplicates(inputArray);
System.out.println("Original array: " + Arrays.toString(inputArray));
System.out.println("Array with duplicates removed: " + Arrays.toString(uniqueArray));
}
}
```
在这个例子中,`removeDuplicates()`函数接收一个整数数组作为输入,然后创建一个HashSet来存储唯一的元素。遍历过程中,每遇到一个元素就添加到集合中。最后,我们从集合中获取大小(无重复元素的数量)的新数组,并返回。
阅读全文
相关推荐













