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));
以上是三种常用的数组去重方法,每种方法都有其优缺点,可以根据具体情况选择合适的方法。
