如何使用Java函数将数组中的重复元素删除?
发布时间:2023-07-04 13:17:52
要删除数组中的重复元素,可以使用Java函数来迭代数组,找到重复元素并删除它们。以下是一个实现这个功能的例子:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
public class RemoveDuplicates {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 2, 3, 5};
System.out.println("原数组: " + Arrays.toString(arr));
int[] newArr = removeDuplicates(arr);
System.out.println("去重后的数组: " + Arrays.toString(newArr));
}
public static int[] removeDuplicates(int[] arr) {
HashSet<Integer> set = new HashSet<>();
ArrayList<Integer> list = new ArrayList<>();
for (int i : arr) {
if (!set.contains(i)) {
set.add(i);
list.add(i);
}
}
int[] newArr = new int[list.size()];
for (int i = 0; i < newArr.length; i++) {
newArr[i] = list.get(i);
}
return newArr;
}
}
在这个例子中,我们首先创建一个HashSet和一个ArrayList来存储唯一的元素。然后,我们遍历整个原始数组,每次迭代时检查HashSet中是否已经存在当前元素。如果元素不存在,我们将其添加到HashSet和ArrayList中。
最后,我们将ArrayList转换为一个新的数组,这样就完成了重复元素的删除操作。返回的新数组就是不含重复元素的结果。
运行这段代码,输出将会是:
原数组: [1, 2, 3, 4, 2, 3, 5] 去重后的数组: [1, 2, 3, 4, 5]
这个方法的时间复杂度是O(n),其中n为原始数组的长度。它的空间复杂度也是O(n),因为我们使用了HashSet和ArrayList来存储唯一的元素。
