// This class uses an ArrayList to represent the frequency counts.
// Barry Cornelius, 19 June 2000
import java.util. ArrayList;
import java.io.   BufferedReader;
import java.io.   IOException;
public class VendingMachine
{
   private BufferedReader iKeyboard;
   private int iNumberOfDrinks;
   private ArrayList iFrequencyCounts;
   public VendingMachine(final BufferedReader pKeyboard,
                         final int pNumberOfDrinks)
   {
      iKeyboard = pKeyboard;
      iNumberOfDrinks = pNumberOfDrinks;
   } //BJCHEREFIRST
   public void setFrequencyCountsToZero()
   {
      iFrequencyCounts = new ArrayList(iNumberOfDrinks + 1);
      final Integer tZeroInteger = new Integer(0);
      for (int tDrinkNumber = 0; tDrinkNumber<=iNumberOfDrinks;
                                 tDrinkNumber++)
      {
         iFrequencyCounts.add(tZeroInteger);
      }
   }
   public void readInSelectionsAndUpdateFrequencyCounts()
                                                 throws IOException
   {
      while (true)
      {
         final String tLine = iKeyboard.readLine();
         if (tLine.equals(""))
         {
            break;
         }
         final int tDrinkSelection = Integer.parseInt(tLine);
         if (tDrinkSelection<1 || tDrinkSelection>iNumberOfDrinks)
         {
            System.out.println("The value is out of range");
            System.exit(1);
         }
         // tDrinkSelection>=1 && tDrinkSelection<=iNumberOfDrinks
         final Integer tOldInteger =
                           (Integer)iFrequencyCounts.get(tDrinkSelection);
         final Integer tNewInteger = new Integer(tOldInteger.intValue() + 1);
         iFrequencyCounts.set(tDrinkSelection, tNewInteger);
      }
   }
   public void outputFrequencyCounts()
   {
      for (int tDrinkNumber = 1; tDrinkNumber<=iNumberOfDrinks;
                                 tDrinkNumber++)
      {
         final Integer tFrequencyCount =
                              (Integer)iFrequencyCounts.get(tDrinkNumber);
         System.out.println(tDrinkNumber + " " + tFrequencyCount.intValue());
      }
   }
}
