编写Java函数,删除数组中的重复元素
发布时间:2023-07-01 07:35:55
在Java中,要删除数组中的重复元素,可以使用以下方法:
方法一:使用HashSet
1. 创建一个HashSet对象,用于存储数组中的元素。
2. 遍历数组,将数组中的元素逐一添加到HashSet中。
3. 创建一个新的数组,将HashSet中的元素逐一添加到新数组中。
4. 返回新数组。
示例代码:
public static int[] removeDuplicates(int[] arr) {
// 创建一个HashSet对象
HashSet<Integer> set = new HashSet<>();
// 遍历数组,将元素添加到HashSet中
for(int i=0; i<arr.length; i++) {
set.add(arr[i]);
}
// 创建新的数组,将HashSet中的元素添加到新数组中
int[] newArr = new int[set.size()];
int index = 0;
for(int num : set) {
newArr[index] = num;
index++;
}
// 返回新数组
return newArr;
}
方法二:使用双重循环
1. 创建一个新数组,用于存储不重复的元素。
2. 遍历原数组,依次取出每个元素。
3. 在新数组中查找是否已经存在该元素,若不存在则添加到新数组中。
4. 返回新数组。
示例代码:
public static int[] removeDuplicates(int[] arr) {
// 创建一个新数组
int[] newArr = new int[arr.length];
int newIndex = 0;
// 遍历原数组
for(int i=0; i<arr.length; i++) {
boolean isDuplicate = false;
// 在新数组中查找是否存在当前元素
for(int j=0; j<newIndex; j++) {
if(arr[i] == newArr[j]) {
// 如果存在重复元素,则不添加到新数组
isDuplicate = true;
break;
}
}
// 如果元素不重复,则添加到新数组
if(!isDuplicate) {
newArr[newIndex] = arr[i];
newIndex++;
}
}
// 创建长度为newIndex的新数组,即去除重复元素后的数组
int[] result = Arrays.copyOf(newArr, newIndex);
// 返回新数组
return result;
}
以上就是删除数组中重复元素的两种方法。使用HashSet方法可以保持原数组的元素顺序不变,而使用双重循环方法则不保证元素的顺序。根据具体需求,选择合适的方法进行实现。
