Java教程

Java删除数组中的重复元素

我们可以通过两种方式删除数组中的重复元素: 使用临时数组或使用单独的索引。要从数组中删除重复的元素,数组必须按排序顺序。如果数组未排序,则可以通过调用 Arrays.sort(arr)方法对其进行排序。

1)使用临时数组 <删除数组中的重复元素< h2>
public class RemoveDuplicateInArrayExample{
    public static int removeDuplicateElements(int arr[], int n){
        if (n==0 || n==1){
            return n;
        }
        int[] temp = new int[n];
        int j = 0;
        for (int i=0;i<n-1;i++){
            if (arr[i] != arr[i+1]){
                temp[j++] = arr[i];
            }
        }
        temp[j++] = arr[n-1];
        // Changing original array for (int i=0;i<j;i++){
            arr[i] = temp[i];
        }
        return j;
    }
    public static void main (String[] args) {
        int arr[] = {10,20,20,30,30,40,50,50};
        int length = arr.length;
        length = removeDuplicateElements(arr, length);
        //printing array elements for (int i=0;i<length;i++) System.out.print(arr[i]+" ");
    }
}
输出:
10 20 30 40 50

2)使用单独的索引删除数组中的重复元素

public class RemoveDuplicateInArrayExample2{
    public static int removeDuplicateElements(int arr[], int n){
        if (n==0 || n==1){
            return n;
        }
        int j = 0;
        //for next element for (int i=0;i <n-1;i++){
            if (arr[i] != arr[i+1]){
                arr[j++] = arr[i];
            }
        }
        arr[j++] = arr[n-1];
        return j;
    }
    public static void main (String[] args) {
        int arr[] = {10,20,20,30,30,40,50,50};
        int length = arr.length;
        length = removeDuplicateElements(arr, length);
        //printing array elements for (int i=0;i<length;i++) System.out.print(arr[i]+" ");
    }
}
输出:
10 20 30 40 50

删除未排序数组中的重复元素

如果您有未排序数组,则需要先对其进行排序。为此,请使用Arrays.sort(arr)方法。
import java.util.Arrays;
public class RemoveDuplicateInArrayExample3{
    public static int removeDuplicateElements(int arr[], int n){
        if (n==0 || n==1){
            return n;
        }
        int[] temp = new int[n];
        int j = 0;
        for (int i=0;i<n-1;i++){
            if (arr[i] != arr[i+1]){
                temp[j++] = arr[i];
            }
        }
        temp[j++] = arr[n-1];
        // Changing original array for (int i=0;i<j;i++){
            arr[i] = temp[i];
        }
        return j;
    }
    public static void main (String[] args) {
        int arr[] = {10,70,30,90,20,20,30,40,70,50};
        //unsorted array Arrays.sort(arr);
        //sorting array int length = arr.length;
        length = removeDuplicateElements(arr, length);
        //printing array elements for (int i=0;i<length;i++) System.out.print(arr[i]+" ");
    }
}
输出:
10 20 30 40 50 70 90
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4