CommencezCommencez gratuitement

Implémenter une application de gestion de contacts

Vous développez une application de gestion de contacts qui maintient une liste de contacts d'utilisateurs au moyen d'un ArrayList. Vous devez implémenter puis analyser la performance de votre fonction de recherche afin de déterminer si elle passera à l'échelle à mesure que le nombre de contacts augmente.

Cette activité fait partie du cours

Optimiser le code en Java

Voir le cours

Instructions de l’exercice

  • Réglez numberOfContacts à 1000.
  • Utilisez une boucle « for each » pour parcourir chaque contact de la liste contacts.
  • Retournez le contact lorsque la méthode findContact le trouve.
  • Exécutez le code tel quel (en utilisant le bouton Exécuter le code), puis changez numberOfContacts à 10000 et relancez-le, en observant comment le temps d'exécution change. Soumettez votre réponse ensuite.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

public class Main {
    public static void main(String[] args) {
        ContactManager manager = new ContactManager();
        
        // Edit numberOfContacts to see how it affects execution time 
        int numberOfContacts = ____;
        for (int i = 0; i < numberOfContacts; i++) {
            manager.addContact(new Contact("Contact_" + i));
        }
        Contact result = manager.findContact("Contact_" + (numberOfContacts - 1));
        System.out.println("Found: " + result.getName());
    }
}

public class ContactManager {
    private ArrayList contacts;
    
    public ContactManager() {
        contacts = new ArrayList<>();
    }
    
    public void addContact(Contact contact) {
        contacts.add(contact);
    }
    
    public Contact findContact(String name) {
        // Complete loop to search through contacts
        for (Contact ____ : ____) {
            if (contact.getName().equals(name)) {
                // Return the match
                return ____;
            }
        }
        return null;
    }
}
Modifier et exécuter le code