MrPolywhirl

CheckDuplicates.java

Oct 26th, 2014
412
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.11 KB | None | 0 0
  1. import java.util.Arrays;
  2.  
  3. public class CheckDuplicates {
  4.     public static void main(String[] args) {
  5.         int[] values = { 8, 5, 9, 8, 6, 13, 33, 1, 98, 12, 8, 1 };
  6.         System.out.println(Arrays.toString(findDuplicates(values)));
  7.     }
  8.  
  9.     public static int[] findDuplicates(int[] values) {
  10.         int buffSize = 10;
  11.         int[] duplicates = new int[buffSize];
  12.         Arrays.sort(values);
  13.         for (int i = 1, j = 0; i < values.length; i++) {
  14.             if (values[i] == values[i - 1]) {
  15.                 duplicates[j++] = values[i];
  16.                 while (values[i] == values[i - 1]) {
  17.                     i++;
  18.                 }
  19.             }
  20.             if (j == buffSize - 1) {
  21.                 duplicates = growArray(duplicates, 2);
  22.                 buffSize = duplicates.length;
  23.             }
  24.         }
  25.         return clipArray(duplicates);
  26.     }
  27.  
  28.     public static int[] growArray(int[] arr, float factor) {
  29.         int newLength = (int)(arr.length * factor);
  30.         int[] temp = new int[newLength];
  31.         System.arraycopy(arr, 0, temp, 0, arr.length);
  32.         return temp;
  33.     }
  34.  
  35.     public static int[] clipArray(int[] arr) {
  36.         int i = 0;
  37.         while (i < arr.length) {
  38.             if (arr[i] == 0) {
  39.                 break;
  40.             } else {
  41.                 i++;
  42.             }
  43.         }
  44.         return Arrays.copyOfRange(arr, 0, i);
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment