CommencerCommencer gratuitement

Implémenter une application de gestion de contacts

Vous développez une application de gestion de contacts qui maintient une liste de contacts utilisateur à l’aide d’un ArrayList. Vous devez implémenter puis analyser les performances de votre fonction de recherche afin de déterminer si elle passera à l’échelle lorsque le nombre de contacts augmentera.

Cet exercice fait partie du cours

Optimiser son code en Java

Afficher le cours

Instructions

  • Définissez numberOfContacts à 1000.
  • Utilisez une boucle for-each pour parcourir chaque contact dans 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 modifiez numberOfContacts à 10000 et exécutez-le à nouveau, en observant comment le temps d’exécution évolue. Soumettez ensuite votre réponse.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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