View Single Post
  #2 (permalink)  
Old 11-18-2007, 08:21 AM
hardwired hardwired is offline
Senior Member
 
Join Date: Jul 2007
Posts: 1,222
hardwired is on a distinguished road
Code:
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(); } } }
Reply With Quote