// This class uses an array to implement a collection of seats. // Barry Cornelius, 19 June 2000 import java.util. Arrays; import java.io. BufferedReader; import java.io. IOException; public class Seats { private BufferedReader iKeyboard; private int iNumberOfSeats; private Person[] iSeats; public Seats(final BufferedReader pKeyboard, final int pNumberOfSeats) { iKeyboard = pKeyboard; iNumberOfSeats = pNumberOfSeats; iSeats = new Person[iNumberOfSeats + 1]; final Person tEmptyPerson = new PersonImpl(); for (int tSeatNumber = 1; tSeatNumber<=iNumberOfSeats; tSeatNumber++) { iSeats[tSeatNumber] = tEmptyPerson; } } public void checkIn() throws IOException { int tSeatNumber = 0; while (true) { final String tLine = iKeyboard.readLine(); if (tLine.equals("")) { break; } tSeatNumber++; if (tSeatNumber>iNumberOfSeats) { System.out.println("More than " + iNumberOfSeats + " passengers"); System.exit(1); } iSeats[tSeatNumber] = new PersonImpl(tLine); } } //BJCHEREFIRST public void outputSeats() { for (int tSeatNumber = 1; tSeatNumber<=iNumberOfSeats; tSeatNumber++) { System.out.println(tSeatNumber + " " + iSeats[tSeatNumber]); } } public void sortTheEntries() { Arrays.sort(iSeats, 1, iNumberOfSeats + 1); } public void querySeats() throws IOException { while (true) { final String tName = iKeyboard.readLine(); if (tName.equals("")) { break; } final Person tTargetPerson = new PersonImpl(); tTargetPerson.setName(tName); final int tTargetPosition = Arrays.binarySearch(iSeats, tTargetPerson); if (tTargetPosition>=0) { System.out.println("Position " + tTargetPosition + " contains " + iSeats[tTargetPosition]); } else { System.out.println(tName + " was not found"); } } } }