/*  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