始める無料で始める

連絡先管理アプリケーションを実装する

あなたは、ArrayList を使ってユーザーの連絡先一覧を管理する連絡先管理アプリケーションを開発しています。検索関数を実装し、そのパフォーマンスを分析して、連絡先数の増加に対して十分にスケールするかを評価してください。

この演習はコースの一部です

Javaコード最適化

コースを見る

演習の手順

  • numberOfContacts1000 に設定します。
  • for-each ループを使って、contacts リスト内の各 contact を走査します。
  • findContact メソッドで見つかったら、その連絡先を返します。
  • まずはそのまま(Run Code ボタンを使って)コードを実行し、その後 numberOfContacts10000 に変更してもう一度実行し、実行時間の変化を観察します。最後に回答を提出してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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;
    }
}
コードを編集して実行