Java Reference
In-Depth Information
Code 12.1
The AddressBook
* Return all the contact details, sorted according
* to the sort order of the ContactDetails class.
* @return A sorted list of the details.
public String listDetails()
// Because each entry is stored under two keys, it is
// necessary to build a set of the ContactDetails.
// This eliminates duplicates.
StringBuilder allEntries = new StringBuilder();
Set<ContactDetails> sortedDetails =
new TreeSet<ContactDetails>(book.values());
for (ContactDetails details : sortedDetails) {
allEntries.append( '\n' );
allEntries.append( '\n' );
return allEntries.toString();
New details can be stored in the address book via its addDetails method. This assumes that
the details represent a new contact and not a change of details for an existing one. To cover the
latter case, the changeDetails method removes an old entry and replaces it with the revised
details. The address book provides two ways to retrieve entries: the getDetails method
takes a name or phone number as the key and returns the matching details; the search method
returns an array of all those details that start with a given search string (for instance, the search
string "08459" would return all entries with phone numbers having that area prefix).
There are two introductory versions of the address-book project for you to explore. Both
provide access to the same version of AddressBook , as shown in Code 12.1. The address-
book-v1t project provides a text-based user interface, similar in style to the interface of the zuul
game discussed in Chapter 6. Commands are currently available to list the address book's con-
tents, search it, and add a new entry. Probably more interesting as an interface, however, is the
address-book-v1g version, which incorporates a simple GUI. Experiment with both versions to
gain some experience with what the application can do.
Exercise 12.1 Open the address-book-v1g project and create an AddressBookDemo ob-
ject. Call its showInterface method to display the GUI and interact with the sample address
Exercise 12.2 Repeat your experimentation with the text interface of the address-book-v1t
Search WWH ::

Custom Search