Java의 배열에서 중복 제거

Lovey Arora 2023년10월12일
  1. 임시 배열을 사용하여 Java 배열에서 중복 제거
  2. 별도의 색인을 사용하여 Java 배열에서 중복 제거
  3. Arrays.sort()메소드를 사용하여 Java의 배열에서 중복 제거
Java의 배열에서 중복 제거

배열은 고정 메모리 위치가 할당 된 유사한 유형의 요소를 저장할 수있는 컬렉션입니다. 배열을 사용하면 중복 값도 저장할 수 있습니다.

이 튜토리얼은 Java의 배열에서 여러 가지 방법으로 중복을 효율적으로 제거하는 방법을 보여줍니다.

임시 배열을 사용하여 Java 배열에서 중복 제거

이 방법에서 요점은 입력 배열을 순회 한 다음 원래 배열의 고유 요소를 임시 배열로 복사하는 것입니다. 이를 위해for루프와if문을 사용합니다. 마지막으로 임시 배열의 요소가 원래 배열에 복사되고 인쇄됩니다.

아래 코드를 참조하십시오.

public class Main{
public static int remove_Duplicate_Elements(int arr[], int n){
        if (n==0 || n==1){
            return n;  
        }  
        int[] tempA = new int[n];  
        int j = 0;  
        for (int i=0; i<n-1; i++){
            if (arr[i] != arr[i+1]){
                tempA[j++] = arr[i];  
            }  
         }  
        tempA[j++] = arr[n-1];       
        for (int i=0; i<j; i++){
            arr[i] = tempA[i];  
        }  
        return j;  
    }  
       
    public static void main (String[] args) {
        int arr[] = {56,56,77,78,78,98,98};  
        int length = arr.length;  
        length = remove_Duplicate_Elements(arr, length);    
        for (int i=0; i<length; i++)  
           System.out.print(arr[i]+" ");  
    }  
}

출력:

56 77 78 98 

위의 프로그램은 정렬 된 배열에서만 구현할 수 있습니다.

별도의 색인을 사용하여 Java 배열에서 중복 제거

여기서if문은 요소가 다음 요소와 같은지 확인하는 데 사용됩니다. 그렇지 않은 경우 해당 특정 요소는 유사한 배열의 일부 인덱스에만 추가됩니다. 이것은 배열에서이 특정 요소가 한 번만 추가되었음을 보여주기 위해 수행됩니다.

이 방법은 배열이 정렬 된 경우에만 적용 할 수 있습니다.

다음 코드 스 니펫에서이를 구현합니다.

public class Main {
  public static int remove_Duplicates(int a[], int n) {
    if (n == 0 || n == 1) {
      return n;
    }

    int j = 0;

    for (int i = 0; i < n - 1; i++) {
      if (a[i] != a[i + 1]) {
        a[j++] = a[i];
      }
    }

    a[j++] = a[n - 1];

    return j;
  }

  public static void main(String[] args) {
    int a[] = {11, 24, 24, 37, 37, 44, 47, 47, 56, 56};

    int n = a.length;

    int j = 0;

    j = remove_Duplicates(a, n);

    for (int i = 0; i < j; i++) System.out.print(a[i] + " ");
  }
}

출력:

11 24 37 44 47 56 

Arrays.sort()메소드를 사용하여 Java의 배열에서 중복 제거

Arrays.sort()함수는 Java에서 배열을 정렬 할 수 있습니다. 이 메소드는 Linked Lists, ArrayLists 등에 사용할뿐만 아니라 원시 데이터 유형에도 사용할 수 있습니다.

이 방법을 사용하면 시간 및 공간 복잡성이 수정되지 않습니다. 그것은 전적으로 코드 구현에 달려 있습니다.

예를 들면

import java.util.Arrays;
public class Main {
  public static int remove_Duplicate_Elements(int arr[], int n) {
    if (n == 0 || n == 1) {
      return n;
    }
    int[] tempA = new int[n];
    int j = 0;
    for (int i = 0; i < n - 1; i++) {
      if (arr[i] != arr[i + 1]) {
        tempA[j++] = arr[i];
      }
    }
    tempA[j++] = arr[n - 1];
    for (int i = 0; i < j; i++) {
      arr[i] = tempA[i];
    }
    return j;
  }

  public static void main(String[] args) {
    int arr[] = {11, 7, 2, 2, 7, 8, 8, 8, 3};
    Arrays.sort(arr);
    int length = arr.length;
    length = remove_Duplicate_Elements(arr, length);
    for (int i = 0; i < length; i++) System.out.print(arr[i] + " ");
  }
}

출력:

2 3 7 8 11

관찰 된 바와 같이, 정렬되지 않은 배열의 중복 요소도 정렬 된 배열과 동일한 방식으로 제거됩니다. 그러나 여기에서는 정렬되지 않은 배열을 정렬하는 데 하나의 추가 방법이 사용됩니다.

배열이 정렬되었는지 여부를 확인한 다음 중복 항목을 제거하는 다음 단계를 진행해야합니다.

관련 문장 - Java Array