LoslegenKostenlos loslegen

Eine Kontaktverwaltungs-App implementieren

Du entwickelst eine Kontaktverwaltungsanwendung, die eine Liste von Benutzerkontakten mit einer ArrayList verwaltet. Du sollst die Suchfunktion implementieren und anschließend ihre Performance analysieren, um zu beurteilen, ob sie skaliert, wenn die Anzahl der Kontakte wächst.

Diese Übung ist Teil des Kurses

Codeoptimierung in Java

Kurs anzeigen

Anleitung zur Übung

  • Setze numberOfContacts auf 1000.
  • Verwende eine for-each-Schleife, um über jeden contact in der Liste contacts zu iterieren.
  • Gib den Kontakt zurück, sobald die Methode findContact ihn findet.
  • Führe den Code zunächst unverändert aus (über den Button Code ausführen), ändere dann numberOfContacts auf 10000 und führe ihn erneut aus. Beobachte dabei, wie sich die Ausführungszeit verändert. Sende danach deine Antwort.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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;
    }
}
Code bearbeiten und ausführen