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
Istruzioni dell'esercizio
- Imposta
numberOfContactsa1000. - Usa un ciclo for-each per iterare su ogni
contactnella listacontacts. - Restituisci il contatto quando il metodo
findContactlo trova. - Esegui il codice così com'è (usando il pulsante Esegui codice), poi cambia
numberOfContactsa10000ed 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;
}
}