1.3-Object-Georienteerd-Programmeren

Een sorteerbaar telefoonboek

We gaan een telefoonboek bouwen waarin we personen opslaan. Het telefoonboek moet gesorteerd worden opgeslagen, zodat we straks eenvoudig het telefoonboek kunnen printen. De sortering is oplopend op achternaam, voornaam en dan telefoonnummer. Dus bijvoorbeeld:

Je ziet hier (net als bij databases), dat we eerst sorteren op achternaam, als er gelijken zijn dan sorteren we op voornaam, en als die ook gelijk zijn dan sorteren we op telefoonnummer.

Bouw het telefoonboek met een print methode die de personen die opgeslagen zijn in het telefoonboek gesorteerd print. Zorg dat de klasse Person de Comparable<T> interface implementeert, zodat je personen met elkaar kunt vergelijken.

Hints

Voorbeeld

De volgende code …

public static void main(String[] args) {
    Phonebook phoneBook = new Phonebook();

    // Create people (in random order)
    phoneBook.addPerson(new Person("Tristan", "Pothoven", "0699999999"));
    phoneBook.addPerson(new Person("Piet", "Jansen", "0601234567"));
    phoneBook.addPerson(new Person("Tristan", "Pothoven", "0698765432"));
    phoneBook.addPerson(new Person("Jan", "Jansen", "0612345678"));

    // Print phonebook
    System.out.println(phoneBook);
}

… produceert het volgende resultaat:

Contents of the phonebook: 
Jansen, Jan (0612345678)
Jansen, Piet (0601234567)
Pothoven, Tristan (0698765432)
Pothoven, Tristan (0699999999)