importjava.util.Arrays;
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
/**
* Java program to removeduplicatesfrom this array. You don't
* need to physically delete duplicate elements, replacing with null, or
* empty or default value is ok.
*
* @author http://javarevisited.blogspot.com
*/
publicclassTechnicalInterviewTest{
privatestaticfinalLogger logger = LoggerFactory.getLogger(TechnicalInterviewTest.class);
publicstaticvoidmain(String args[]) {
int[][] test =newint[][]{
{1,1,2,2,3,4,5},
{1,1,1,1,1,1,1},
{1,2,3,4,5,6,7},
{1,2,1,1,1,1,1},};
for(int[] input : test) {
System.out.println("Array with Duplicates : "+ Arrays.toString(input));
System.out.println("After removing duplicates : "+ Arrays.toString(removeDuplicates(input)));
}
}
/*
* Method to remove duplicates from array in Java, without using
* Collectionclassese.g. Set or ArrayList. Algorithm for this
* method is simple, it first sort the array and then compare adjacent
* objects, leaving out duplicates, which is already in theresult.
*/
publicstaticint[]removeDuplicates(int[] numbersWithDuplicates) {
// Sorting array to bring duplicates together
Arrays.sort(numbersWithDuplicates);
int[] result =newint[numbersWithDuplicates.length];
intprevious = numbersWithDuplicates[0];
result[0] = previous;
for(inti =1; i < numbersWithDuplicates.length; i++) {
intch = numbersWithDuplicates;
if(previous != ch) {
result = ch;
}
previous = ch;
}
returnresult;
}
}
Output :
Array with Duplicates : [1,1,2,2,3,4,5]
After removing duplicates : [1,0,2,0,3,4,5]
Array with Duplicates : [1,1,1,1,1,1,1]
After removing duplicates : [1,0,0,0,0,0,0]
Array with Duplicates : [1,2,3,4,5,6,7]
After removing duplicates : [1,2,3,4,5,6,7]
Array with Duplicates : [1,2,1,1,1,1,1]
After removing duplicates : [1,0,0,0,0,0,2]
Read more:[url]https://javarevisited.blogspot.com/2014/01/how-to-remove-duplicates-from-array-java-without-collection-API.html#ixzz5vYhjHaKh