Chapter 17: java.util Part 1: The Collections Framework 501
// ignore missing file
}/* If phonebook file already exists,
load existing telephone numbers. */
try {
if(fin != null) {
ht.load(fin);
fin.close();
}
} catch(IOException e) {
System.out.println("Error reading file.");
}// Let user enter new names and numbers.
do {
System.out.println("Enter new name" +
" ('quit' to stop): ");
name = br.readLine();
if(name.equals("quit")) continue;System.out.println("Enter number: ");
number = br.readLine();ht.put(name, number);
changed = true;
} while(!name.equals("quit"));// If phone book data has changed, save it.
if(changed) {
FileOutputStream fout = new FileOutputStream("phonebook.dat");ht.store(fout, "Telephone Book");
fout.close();
}// Look up numbers given a name.
do {
System.out.println("Enter name to find" +
" ('quit' to quit): ");
name = br.readLine();
if(name.equals("quit")) continue;number = (String) ht.get(name);
System.out.println(number);
} while(!name.equals("quit"));
}
}Parting Thoughts on Collections
The Collections Framework gives you, the programmer, a powerful set of well-engineered
solutions to some of programming’s most common tasks. Now that the Collections Framework
is generic, it can be used with complete type safety, which further contributes to its value.