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.
ArrayList
kun je sorteren door gebruik te maken van de Collections.sort()
(zie onderstaande links).String
klasse heeft ook de Comparable<String>
interface geïmplementeerd.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)