Java函数实现将数组中的重复元素清除
发布时间:2023-11-27 01:29:58
在Java中实现将数组中的重复元素清除的方法有很多种。下面我将介绍三种常用的方法。
方法一:使用Set
可以使用Java中的Set来实现去除数组中的重复元素,Set集合具有元素不重复的特点。
import java.util.HashSet;
public class RemoveDuplicates {
public static int[] removeDuplicates(int[] arr){
// 使用HashSet去除重复元素
HashSet<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;
}
return result;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 3, 4, 4, 5};
int[] result = removeDuplicates(arr);
// 打印去重后的数组
for(int num: result){
System.out.print(num + " ");
}
}
}
运行结果:
1 2 3 4 5
方法二:使用相邻元素比较
可以通过比较当前元素与相邻元素是否相等来判断是否为重复元素,然后将不重复的元素存入新数组。
public class RemoveDuplicates {
public static int[] removeDuplicates(int[] arr){
// 统计不重复元素的个数
int count = 1;
for(int i = 1; i < arr.length; i++){
// 如果当前元素与相邻元素不相等,则计数加一
if(arr[i] != arr[i-1]){
count++;
}
}
// 将不重复的元素存入新数组
int[] result = new int[count];
result[0] = arr[0];
int index = 1;
for(int i = 1; i < arr.length; i++){
if(arr[i] != arr[i-1]){
result[index++] = arr[i];
}
}
return result;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 3, 4, 4, 5};
int[] result = removeDuplicates(arr);
// 打印去重后的数组
for(int num: result){
System.out.print(num + " ");
}
}
}
运行结果:
1 2 3 4 5
方法三:使用Arrays类的stream方法
可以使用Java的Arrays类的stream方法结合distinct方法来实现去除数组中的重复元素。
import java.util.Arrays;
public class RemoveDuplicates {
public static int[] removeDuplicates(int[] arr){
// 使用stream方法去除重复元素
int[] result = Arrays.stream(arr).distinct().toArray();
return result;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 3, 4, 4, 5};
int[] result = removeDuplicates(arr);
// 打印去重后的数组
for(int num: result){
System.out.print(num + " ");
}
}
}
运行结果:
1 2 3 4 5
这三种方法都可以实现将数组中的重复元素清除,根据实际情况选择合适的方法即可。
