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

编写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方法可以保持原数组的元素顺序不变,而使用双重循环方法则不保证元素的顺序。根据具体需求,选择合适的方法进行实现。