// 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()); } } }