Lessons 39 - angelShlesser/HomeWorksAIT GitHub Wiki

Упражнение: Управление базой данных студентов с использованием HashSet в Java

Описание: В этом упражнении вы будете работать с коллекцией HashSet в Java для управления уникальным набором объектов. Ваша задача - создать простую базу данных студентов, где каждый студент имеет уникальный идентификатор. Вы будете использовать HashSet для хранения студентов и гарантии отсутствия дубликатов.

Основные компоненты:

Класс Student:
    Поля:
        id (int): уникальный идентификатор студента.
        name (String): имя студента.
        age (int): возраст студента.
    Методы:
        Конструктор для инициализации всех полей. Геттеры/Сеттеры.

Класс StudentDatabase:
    Поля:
        students (HashSet): коллекция для хранения данных студентов.
    Методы:
        Конструктор для инициализации коллекции students.
        addStudent(Student student): должен добавлять объект Student в students, если такого студента еще нет в базе данных.
        removeStudent(Student student): должен удалять объект Student из students, если он там есть.
        containsStudent(Student student): должен проверять, содержится ли объект Student в students.
        printAllStudents(): должен выводить на экран данные всех студентов в students.

Класс Main (или другой класс с методом main):
    Создайте экземпляр StudentDatabase.
    Создайте несколько экземпляров Student с различными данными.
    Добавьте, проверьте на наличие и удалите Student из StudentDatabase.
    Выведите всех студентов в базе данных.

Дополнительно:

Рассмотрите возможность расширения функциональности, добавив дополнительные методы в StudentDatabase, например, для поиска студента по имени или для получения списка студентов в определенном возрастном диапазоне.

Дополнительное задание для тестирования:

Написание Unit-тестов для базы данных студентов

Цель: Убедиться, что методы класса StudentDatabase работают правильно во всех предполагаемых сценариях использования.

Тестирование:

Напишите тесты для каждого из следующих сценариев:

addStudent успешно добавляет студента.
addStudent не добавляет дубликаты.
removeStudent успешно удаляет студента.
removeStudent ничего не делает, если студента нет в базе данных.
containsStudent возвращает true для существующего студента.
containsStudent возвращает false для несуществующего студента.