public class CallingFromMain {
public static void main(String[] args) {
int[] array = randomArray(50);
System.out.println("------- array --------");
print(array);
int[] uniqueVals = getUniqueValues(array);
int[] counter = new int[uniqueVals.length];
for(int j = 0; j < array.length; j++) {
int index = findIndexIn(uniqueVals, array[j]);
counter[index]++;
}
System.out.println("------- counter --------");
print(counter);
System.out.println("-------- results -------");
System.out.printf("all values in array = %d unique values = %d%n",
array.length, uniqueVals.length);
int count = 0;
for(int j = 0; j < counter.length; j++) {
if(counter[j] > 1)
count += counter[j]-1;
}
System.out.println("Number of duplicate entries = " + count);
}
public static int[] randomArray (int num) {
int[] array = new int[num];
for (int i = 0; i < array.length; i++) {
array[i] = (int)(Math.random() * 100) + 1;
}
return array;
}
private static int[] getUniqueValues(int[] array) {
int[] uniqueValues = new int[array.length];
java.util.Arrays.fill(uniqueValues, -1);
int count = 0;
for(int j = 0; j < array.length; j++) {
if(!contains(uniqueValues, array[j]))
uniqueValues[count++] = array[j];
}
int[] retVal = new int[count];
System.arraycopy(uniqueValues, 0, retVal, 0, count);
return retVal;
}
private static boolean contains(int[] array, int target) {
for(int j = 0; j < array.length; j++) {
if(array[j] == target)
return true;
}
return false;
}
private static int findIndexIn(int[] array, int target) {
for(int j = 0; j < array.length; j++) {
if(array[j] == target)
return j;
}
return -1;
}
private static void print(int[] array) {
for(int j = 0; j < array.length; j++) {
System.out.print(array[j]);
if(j < array.length-1)
System.out.print(", ");
else
System.out.println();
}
}
}