- Fork and clone this repository to complete your lab. Submit each part with a Pull Request for a separate branch.
- You are expected to write unit tests for your code.
- Be sure to write the tests before implementing the functionality being tested.
- Tests must be thorough and address all possible paths through each method.
- Your completed lab must be submitted via GitHub.
- Labs are not complete unless they include UML diagrams of all implemented classes, as well as unit tests for all features.
-
Create a
PhoneBook
class that holds names and phone numbers. -
You can use an associative data type (one which stores items as keys paired with values).
-
Hint: You should use a sorted map.
-
Your PhoneBook class should have the following method
-
add(String name, String phoneNumber)
- adds an entry to the composite associate data type
-
remove(String name)
- removes an entry to the composite associate data type
-
lookup(String name)
- returns a phone number for the respective input
name
- returns a phone number for the respective input
-
reverseLookup(String phoneNumber)
- returns a name for the respective input
phoneNumber
- returns a name for the respective input
-
display()
-
print a human-readable list of all entries (names and phone numbers) in alphabetical order.
-
Sample Script
PhoneBook phoneBook = new PhoneBook(); phoneBook.add("Zebra", "111-222-333"); phoneBook.add("Dog", "222-444-4444"); phoneBook.display();
-
Sample Output
Dog 222-444-4444 Zebra 111-222-333
-
-
- Some people have more than one phone number.
- Refactor your
PhoneBook
class to map names to lists of phone numbers. - You should modify your
add()
andremove()
methods to handle adding or removing individual numbers - Create a
removeRecord
method for removing an entire entry from your PhoneBook.