java数组去重
Java数组去重可以通过以下两种方法实现:
- 使用Set集合
可以将数组中的元素添加到Set集合中,由于Set集合中不允许重复元素,因此重复的元素会自动被去除。然后再将Set集合转换为数组即可。
示例代码:
import java.util.*;
public class ArrayDistinctExample {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 3, 2, 1};
Set<Integer> set = new HashSet<>();
for (int i = 0; i < array.length; i++) {
set.add(array[i]);
}
int[] result = new int[set.size()];
int index = 0;
for (int element : set) {
result[index++] = element;
}
System.out.println("Original Array: " + Arrays.toString(array));
System.out.println("Distinct Array: " + Arrays.toString(result));
}
}
输出结果:
Original Array: [1, 2, 3, 4, 3, 2, 1]
Distinct Array: [1, 2, 3, 4]
- 使用双重循环
可以使用双重循环遍历数组,对于每个元素,再遍历它之后的元素,如果找到了相同的元素,则将它们之后的元素依次向前移动一个位置,直到数组末尾。这样就可以实现去重。
示例代码:
import java.util.*;
public class ArrayDistinctExample {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 3, 2, 1};
int length = array.length;
for (int i = 0; i < length; i++) {
for (int j = i + 1; j < length; j++) {
if (array[i] == array[j]) {
for (int k = j; k < length - 1; k++) {
array[k] = array[k + 1];
}
length--;
j--;
}
}
}
int[] result = Arrays.copyOf(array, length);
System.out.println("Original Array: " + Arrays.toString(array));
System.out.println("Distinct Array: " + Arrays.toString(result));
}
}
输出结果:
Original Array: [1, 2, 3, 4, 3, 2, 1]
Distinct Array: [1, 2, 3, 4]
原文地址: https://www.cveoy.top/t/topic/qrH 著作权归作者所有。请勿转载和采集!