/*  Steve Ericsson
    DeDup.java
    CS 111A Programming Lab 7
    Program to remove duplicates from an array
*/
//  Java packages
import java.io.*;
public class DeDup
{
   public static void main (String args []) throws IOException
   {
      int numbers [] = new int [10];
      int remainEle;
      String output  = "";
      BufferedReader keyIn = new BufferedReader(new InputStreamReader(System.in));
      System.out.println("Please enter 10 integers, hitting return after each one: ");
      for (int i = 0; i < 10; ++i)
          numbers[i] = Integer.parseInt(keyIn.readLine());
      remainEle = findDups(numbers);
      for (int i = 0; i < remainEle; ++i)
         output += numbers[i] + " ";
      System.out.println("You entered " + remainEle + " unique numbers:");
      System.out.println(output);
   } // end main
   public static int findDups(int [] a)  // checks for duplicate entries in the array
   {
      int numEle = a.length, x = 0, y;
      do // loop through all indexes, using x
      {
         // search for duplicates of a[x] in later elements
         for (y = x + 1; y < numEle;)
           if(a[x] == a[y]) // if duplicate found
           {
              // delete a[y] by moving all following elements back one spot
              for (int i = y; i < numEle - 1; ++i)
                 a[i] = a[i + 1];
              numEle -= 1;
           }
           else
              ++y;
         ++x;
      }while(x < numEle -1);
      return numEle;
   } // end findDups
}  // end class DeDup
/*   EXECUTION SCRIPT   --
Script started on Wed May  5 17:00:11 2004
bash-2.04$ java DeDup
Please enter 10 integers, hitting return after each one:
5
75
10
75
5
80
10
5
5
50
You entered 5 unique numbers:
5 75 10 80 50
bash-2.04$ java DeDup
Please enter 10 integers, hitting return after each one:
1
2
3
4
5
6
7
8
9
10
You entered 10 unique numbers:
1 2 3 4 5 6 7 8 9 10
*/
syntax highlighted by Code2HTML, v. 0.9