Java数组去重:方法与技巧详解

在Java编程中,数组是常用的一种数据结构,但在实际应用中,数组中可能会存在重复的数据,去重是处理数组数据的一个重要步骤,本文将详细介绍几种在Java中去除数组重复元素的方法和技巧。
使用HashSet去重
原理
HashSet是一个不允许有重复元素的集合,通过将数组元素添加到HashSet中,可以利用HashSet的特性自动去除重复元素。
代码示例

import java.util.HashSet;
import java.util.Set;
public class ArrayDuplicateRemoval {
public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 5, 2, 3, 6, 7, 8, 9, 1, 0};
Set<Integer> set = new HashSet<>();
for (Integer element : array) {
set.add(element);
}
Integer[] newArray = set.toArray(new Integer[0]);
for (Integer element : newArray) {
System.out.print(element + " ");
}
}
}
使用Arrays.sort()和循环去重
原理
首先对数组进行排序,然后遍历数组,比较相邻元素是否相同,从而去除重复元素。
代码示例
import java.util.Arrays;
public class ArrayDuplicateRemoval {
public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 5, 2, 3, 6, 7, 8, 9, 1, 0};
Arrays.sort(array);
Integer[] newArray = new Integer[array.length];
int newArrayLength = 0;
for (int i = 0; i < array.length; i++) {
if (i == 0 || !array[i].equals(array[i - 1])) {
newArray[newArrayLength++] = array[i];
}
}
Integer[] uniqueArray = Arrays.copyOf(newArray, newArrayLength);
for (Integer element : uniqueArray) {
System.out.print(element + " ");
}
}
}
使用自定义去重方法

原理
自定义一个方法,遍历数组,将元素添加到一个新的数组中,如果该元素不存在于新数组中,则添加到新数组中。
代码示例
public class ArrayDuplicateRemoval {
public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 5, 2, 3, 6, 7, 8, 9, 1, 0};
Integer[] newArray = removeDuplicates(array);
for (Integer element : newArray) {
System.out.print(element + " ");
}
}
public static Integer[] removeDuplicates(Integer[] array) {
Integer[] newArray = new Integer[array.length];
int newArrayLength = 0;
for (int i = 0; i < array.length; i++) {
if (newArrayLength == 0 || !newArray[newArrayLength - 1].equals(array[i])) {
newArray[newArrayLength++] = array[i];
}
}
return Arrays.copyOf(newArray, newArrayLength);
}
}
在Java中,去除数组重复元素的方法有很多,本文介绍了三种常用的方法,在实际应用中,可以根据具体需求选择合适的方法进行数组去重。


















