Реализация приложения для управления контактами
Вы разрабатываете приложение для управления контактами, в котором список пользователей хранится в ArrayList. Ваша задача — реализовать функцию поиска и проанализировать её производительность, чтобы оценить, насколько хорошо она будет масштабироваться по мере роста числа контактов.
Это упражнение является частью курса
Оптимизация кода на Java
Инструкции к упражнению
- Присвойте переменной
numberOfContactsзначение1000. - Используйте цикл for each для перебора каждого элемента
contactв спискеcontacts. - Верните контакт, когда метод
findContactего найдёт. - Запустите код в исходном виде (с помощью кнопки Запустить код), затем измените значение
numberOfContactsна10000и запустите снова, обратив внимание на изменение времени выполнения. После этого отправьте ответ.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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;
}
}