📅  最后修改于: 2023-12-03 15:39:42.097000             🧑  作者: Mango
在很多编程场景下,我们需要对数组进行去重操作并打印出元素。这个任务看似简单,但是对于初学者或者面试者来说还是有一定的难度的。在本文中,我们将介绍几种实现这个任务的方法。
int[] arr = {1, 2, 3, 1, 2, 4, 5};
Set<Integer> set = new HashSet<>();
for (int i : arr) {
set.add(i);
}
for (int i : set) {
System.out.print(i + " ");
}
这里我们使用了Java中的Set集合,Set集合不允许存放重复元素。我们通过使用Set集合的add()方法将数组中的元素逐个添加到Set中,这样Set中便只会保留数组中不同的元素。
int[] arr = {1, 2, 3, 1, 2, 4, 5};
IntStream.of(arr).distinct().forEach(e -> System.out.print(e + " "));
我们使用Java 8引入的Stream API,在数组上调用IntStream.of()方法将数组转换为Stream流,然后使用distinct()方法进行去重。最后,我们使用forEach()方法遍历并打印出Stream中的元素。
int[] arr = {1, 2, 3, 1, 2, 4, 5};
int len = arr.length;
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
arr[j] = arr[len - 1];
len--;
j--;
}
}
}
for (int i = 0; i < len; i++) {
System.out.print(arr[i] + " ");
}
这种方法需要对数组进行两次遍历,我们从数组的第一个元素开始,如果后面存在与其相同的元素,则将后一个元素移至数组末尾,并将数组长度-1。这是为了确保被去重的元素不在后续的比较中被重复计算。最后,遍历的数组长度之内的所有元素并打印出来。
综上所述,我们介绍了三种实现给定整数数组去重并打印出不同元素的方法:使用Set集合、Stream流以及数组下标。这些方法适用于不同的场景,在实际开发中需要根据具体情况进行选择使用。