Implementar una aplicación de gestión de contactos
Estás desarrollando una aplicación de gestión de contactos que mantiene una lista de contactos de usuario usando un ArrayList. Necesitas implementar y luego analizar el rendimiento de tu función de búsqueda para determinar si escalará bien a medida que crece el número de contactos.
Este ejercicio forma parte del curso
Optimizing Code in Java
Instrucciones del ejercicio
- Establece
numberOfContactsen1000. - Usa un bucle for-each para iterar por cada
contacten la listacontacts. - Devuelve el contacto cuando el método
findContactlo encuentre. - Ejecuta el código tal como está (usando el botón Ejecutar código), luego cambia
numberOfContactsa10000y ejecútalo de nuevo, observando cómo cambia el tiempo de ejecución. Envía tu respuesta después.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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;
}
}