IniziaInizia gratis

Implementare un'applicazione di gestione contatti

Stai sviluppando un'applicazione di gestione dei contatti che mantiene un elenco di contatti utente usando un ArrayList. Devi implementare e poi analizzare le prestazioni della tua funzione di ricerca per capire se scalerà bene all'aumentare del numero di contatti.

Questo esercizio fa parte del corso

Ottimizzazione del codice in Java

Visualizza il corso

Istruzioni dell'esercizio

  • Imposta numberOfContacts a 1000.
  • Usa un ciclo for-each per iterare su ogni contact nella lista contacts.
  • Restituisci il contatto quando il metodo findContact lo trova.
  • Esegui il codice così com'è (usando il pulsante Esegui codice), poi cambia numberOfContacts a 10000 ed eseguilo di nuovo, osservando come cambia il tempo di esecuzione. Infine, invia la risposta.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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;
    }
}
Modifica ed esegui il codice