Java整型数组去重
时间: 2024-04-23 22:20:06 浏览: 109
在Java中,可以使用多种方法对整型数组进行去重操作。以下是一种常见的方法:
1. 使用Set集合:将整型数组中的元素添加到Set集合中,由于Set集合的特性是不允许重复元素的,所以最后得到的Set集合就是去重后的结果。
示例代码如下:
```java
import java.util.HashSet;
import java.util.Set;
public class ArrayDeduplication {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 2, 3, 5};
Set<Integer> set = new HashSet<>();
for (int num : array) {
set.add(num);
}
// 输出去重后的结果
for (int num : set) {
System.out.print(num + " ");
}
}
}
```
输出结果为:1 2 3 4 5
相关问题
java整型数组去重
在 Java 中,整型数组去重可以采用几种常见的方法:
1. **利用HashSet**:将数组元素添加到 HashSet 中,由于 HashSet 的特性不允许有重复元素,所以最后集合的大小就是去重后的元素数,然后再将其转换回数组。
```java
import java.util.*;
public int[] removeDuplicates(int[] arr) {
Set<Integer> set = new HashSet<>();
for (int num : arr) {
set.add(num);
}
return set.stream().mapToInt(Integer::intValue).toArray();
}
```
2. **使用双指针法**:创建两个指针,一个用于遍历整个数组,另一个用于检查已存在的元素。如果当前元素未在之前遇到过,则复制到新数组中。
```java
public int[] removeDuplicates(int[] arr) {
if (arr == null || arr.length == 0) {
return arr;
}
int[] res = new int[arr.length];
int j = 0;
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] != arr[i + 1]) {
res[j++] = arr[i];
}
}
// 添加最后一个元素,因为循环结束时j可能未达到最大值
res[j++] = arr[arr.length - 1];
return Arrays.copyOf(res, j);
}
```
3. **使用排序+遍历**:先对数组进行排序,然后从第二个元素开始遍历,如果当前元素大于前面的任何一个元素,则添加到结果数组中。
```java
public int[] removeDuplicates(int[] arr) {
Arrays.sort(arr);
int n = arr.length;
if (n <= 1) {
return arr;
}
int result[] = new int[n];
result = arr;
for (int i = 1; i < n; i++) {
if (arr[i] != arr[i - 1]) {
result[i] = arr[i];
}
}
return result;
}
```
在java中,对整型数组进行去重并返回原数组
可以使用java.util.HashSet来实现整型数组的去重,具体代码如下:
```java
import java.util.Arrays;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 3, 4, 4, 5};
arr = removeDuplicates(arr);
System.out.println(Arrays.toString(arr)); // [1, 2, 3, 4, 5]
}
public static int[] removeDuplicates(int[] arr) {
HashSet<Integer> set = new HashSet<>();
for (int i = 0; i < arr.length; i++) {
set.add(arr[i]); // 将元素添加到HashSet集合中
}
int[] result = new int[set.size()];
int index = 0;
for (Integer num : set) {
result[index++] = num; // 将HashSet集合中的元素转移到数组中
}
return result;
}
}
```
注意,这里将原数组替换为去重后的数组,如果需要保留原数组,可以在方法中新建一个数组来存储去重后的结果。
阅读全文