Xây dựng ứng dụng quản lý liên hệ
Bạn đang phát triển một ứng dụng quản lý liên hệ, duy trì danh sách liên hệ người dùng bằng ArrayList. Bạn cần hiện thực và phân tích hiệu năng của hàm tìm kiếm để xác định liệu nó có mở rộng tốt khi số lượng liên hệ tăng lên hay không.
Bài tập này là một phần của khóa học
Tối ưu hóa mã trong Java
Hướng dẫn bài tập
- Đặt
numberOfContactsthành1000. - Dùng vòng lặp for-each để duyệt qua từng
contacttrong danh sáchcontacts. - Trả về liên hệ khi phương thức
findContacttìm thấy. - Chạy mã như hiện tại (dùng nút Chạy mã), sau đó đổi
numberOfContactsthành10000và chạy lại, quan sát sự thay đổi thời gian thực thi. Cuối cùng Gửi câu trả lời của bạn.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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;
}
}