java 数组去重
时间: 2024-04-17 13:21:03 浏览: 194
在Java中,可以使用多种方法对数组进行去重操作。以下是几种常见的方法:
1. 使用Set集合:将数组元素添加到Set集合中,由于Set集合的特性不允许有重复元素,最后再将Set集合转换回数组。
示例代码如下:
```java
import java.util.HashSet;
import java.util.Set;
public class ArrayDuplicateRemoval {
public static int[] removeDuplicates(int[] arr) {
Set<Integer> set = new HashSet<>();
for (int num : arr) {
set.add(num);
}
int[] result = new int[set.size()];
int i = 0;
for (int num : set) {
result[i++] = num;
}
return result;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 3, 4, 4, 5};
int[] result = removeDuplicates(arr);
for (int num : result) {
System.out.print(num + " ");
}
}
}
```
输出结果:1 2 3 4 5
2. 使用List集合:将数组元素添加到List集合中,然后利用List集合的contains方法判断是否已存在该元素,最后再将List集合转换回数组。
示例代码如下:
```java
import java.util.ArrayList;
import java.util.List;
public class ArrayDuplicateRemoval {
public static int[] removeDuplicates(int[] arr) {
List<Integer> list = new ArrayList<>();
for (int num : arr) {
if (!list.contains(num)) {
list.add(num);
}
}
int[] result = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
result[i] = list.get(i);
}
return result;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 3, 4, 4, 5};
int[] result = removeDuplicates(arr);
for (int num : result) {
System.out.print(num + " ");
}
}
}
```
输出结果:1 2 3 4 5
3. 使用双重循环:遍历数组,将每个元素与后面的元素进行比较,如果相同则跳过,不同则将其添加到新数组中。
示例代码如下:
```java
public class ArrayDuplicateRemoval {
public static int[] removeDuplicates(int[] arr) {
int len = arr.length;
for (int i = 0; i < len - 1; i++) {
for (int j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
arr[j] = arr[len - 1];
len--;
j--;
}
}
}
int[] result = new int[len];
System.arraycopy(arr,0, result, 0, len);
return result;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 3, 4, 4, 5};
int[] result = removeDuplicates(arr);
for (int num : result) {
System.out.print(num + " ");
}
}
}
```
输出结果:1 2 3 4 5
阅读全文