Java Program to remove duplicate element in an Array

We can remove duplicate element in an array by 2 ways: using temporary array or using separate index. To remove the duplicate element from array, the array must be in sorted order. If array is not sorted, you can sort it by calling Arrays.sort(arr) method.

1) Remove Duplicate Element in Array using Temporary Array

  1. public class RemoveDuplicateInArrayExample{  
  2. public static int removeDuplicateElements(int arr[], int n){  
  3.         if (n==0 || n==1){  
  4.             return n;  
  5.         }  
  6.         int[] temp = new int[n];  
  7.         int j = 0;  
  8.         for (int i=0; i<n-1; i++){  
  9.             if (arr[i] != arr[i+1]){  
  10.                 temp[j++] = arr[i];  
  11.             }  
  12.          }  
  13.         temp[j++] = arr[n-1];     
  14.         // Changing original array  
  15.         for (int i=0; i<j; i++){  
  16.             arr[i] = temp[i];  
  17.         }  
  18.         return j;  
  19.     }  
  20.        
  21.     public static void main (String[] args) {  
  22.         int arr[] = {10,20,20,30,30,40,50,50};  
  23.         int length = arr.length;  
  24.         length = removeDuplicateElements(arr, length);  
  25.         //printing array elements  
  26.         for (int i=0; i<length; i++)  
  27.            System.out.print(arr[i]+” “);  
  28.     }  
  29. }  

Output:

10 20 30 40 50 

2) Remove Duplicate Element in Array using separate index

  1. public class RemoveDuplicateInArrayExample2{  
  2.     public static int removeDuplicateElements(int arr[], int n){  
  3.         if (n==0 || n==1){  
  4.             return n;  
  5.         }    
  6.         int j = 0;//for next element  
  7.         for (int i=0; i < n-1; i++){  
  8.             if (arr[i] != arr[i+1]){  
  9.                 arr[j++] = arr[i];  
  10.             }  
  11.         }  
  12.         arr[j++] = arr[n-1];  
  13.         return j;  
  14.     }  
  15.        
  16.     public static void main (String[] args) {  
  17.         int arr[] = {10,20,20,30,30,40,50,50};  
  18.         int length = arr.length;  
  19.         length = removeDuplicateElements(arr, length);  
  20.         //printing array elements  
  21.         for (int i=0; i<length; i++)  
  22.            System.out.print(arr[i]+” “);  
  23.     }  
  24. }  

Output:

10 20 30 40 50 

Remove Duplicate Elements in Unsorted Array

If you have unsorted array, you need to sort it first. To do so, use Arrays.sort(arr) method.

  1. import java.util.Arrays;  
  2. public class RemoveDuplicateInArrayExample3{  
  3. public static int removeDuplicateElements(int arr[], int n){  
  4.         if (n==0 || n==1){  
  5.             return n;  
  6.         }  
  7.         int[] temp = new int[n];  
  8.         int j = 0;  
  9.         for (int i=0; i<n-1; i++){  
  10.             if (arr[i] != arr[i+1]){  
  11.                 temp[j++] = arr[i];  
  12.             }  
  13.          }  
  14.         temp[j++] = arr[n-1];     
  15.         // Changing original array  
  16.         for (int i=0; i<j; i++){  
  17.             arr[i] = temp[i];  
  18.         }  
  19.         return j;  
  20.     }  
  21.        
  22.     public static void main (String[] args) {  
  23.         int arr[] = {10,70,30,90,20,20,30,40,70,50};//unsorted array  
  24.         Arrays.sort(arr);//sorting array  
  25.         int length = arr.length;  
  26.         length = removeDuplicateElements(arr, length);  
  27.         //printing array elements  
  28.         for (int i=0; i<length; i++)  
  29.            System.out.print(arr[i]+” “);  
  30.     }  
  31. }  

Output:

10 20 30 40 50 70 90 

Leave a Comment