📌  相关文章
📜  打印给定整数数组的所有不同元素(1)

📅  最后修改于: 2023-12-03 15:39:42.097000             🧑  作者: Mango

打印给定整数数组的所有不同元素

在很多编程场景下,我们需要对数组进行去重操作并打印出元素。这个任务看似简单,但是对于初学者或者面试者来说还是有一定的难度的。在本文中,我们将介绍几种实现这个任务的方法。

方法一:使用Set进行去重
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中便只会保留数组中不同的元素。

方法二:使用Stream流进行去重
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流以及数组下标。这些方法适用于不同的场景,在实际开发中需要根据具体情况进行选择使用。