欢迎访问宙启技术站
智能推送

Java如何实现数组去重?

发布时间:2023-07-02 23:20:10

在Java中,有多种方法可以实现数组去重。下面我将介绍三种常用的方法。

1. 利用Set集合

一种简单的方法是使用Set集合来实现数组去重。Set集合在插入元素时会自动去重,因此可以使用这个特性来实现数组去重。具体步骤如下:

(1) 创建一个Set集合对象。

(2) 遍历原始数组,将每个元素插入Set集合中。

(3) 创建一个新的数组,将Set集合中的元素依次复制到新数组中。

下面是一个示例代码:

int[] arr = {1, 2, 3, 4, 1, 2, 3};
Set<Integer> set = new HashSet<>();
for (int num : arr) {
    set.add(num);
}
int[] result = new int[set.size()];
int index = 0;
for (int num : set) {
    result[index++] = num;
}
System.out.println(Arrays.toString(result));

2. 利用Arrays类的工具方法

Java中的Arrays类提供了一个静态方法stream(),可以将数组转换成流(Stream),进而方便地进行一系列操作,包括去重。具体步骤如下:

(1) 使用Arrays类的stream()方法将数组转换为流。

(2) 使用流的distinct()方法去除重复元素。

(3) 使用流的toArray()方法将流转换为数组。

下面是一个示例代码:

int[] arr = {1, 2, 3, 4, 1, 2, 3};
int[] result = Arrays.stream(arr).distinct().toArray();
System.out.println(Arrays.toString(result));

3. 利用双重循环

这是一种比较基础的方法,使用双重循环来遍历数组,并比较元素是否重复。具体步骤如下:

(1) 创建一个新的数组,用于存储去重后的元素。

(2) 使用双重循环遍历原始数组,检查每个元素是否已经在新数组中存在。

(3) 如果元素不重复,则将其添加到新数组中。

下面是一个示例代码:

int[] arr = {1, 2, 3, 4, 1, 2, 3};
int[] result = new int[arr.length];
int size = 0;
for (int i = 0; i < arr.length; i++) {
    boolean isDuplicate = false;
    for (int j = 0; j < size; j++) {
        if (arr[i] == result[j]) {
            isDuplicate = true;
            break;
        }
    }
    if (!isDuplicate) {
        result[size++] = arr[i];
    }
}
int[] finalResult = Arrays.copyOf(result, size);
System.out.println(Arrays.toString(finalResult));

以上是三种常用的数组去重方法,每种方法都有其优缺点,可以根据具体情况选择合适的方法。