# Техническое задание: заполнение коллекции ## Задача Реализовать разные способы заполнения `MyList` данными. ## Требования 1. Создать интерфейс `DataSource` с методом: ```text fill(int size) ``` 2. Реализовать три способа заполнения: - `ManualDataSource` — ручной ввод; - `RandomDataSource` — случайная генерация; - `FileDataSource` — чтение из файла. 3. Результатом работы каждого источника должна быть коллекция `MyList`. 4. Для создания объектов `Student` использовать `StudentBuilder`. 5. Все данные должны проходить валидацию средствами `Student`. 6. При ручном вводе некорректные данные не должны добавляться в коллекцию. 7. При чтении из файла некорректные строки должны обрабатываться без создания невалидных объектов `Student`. 8. Размер коллекции должен задаваться пользователем и соблюдаться при заполнении. 9. Не использовать стандартные коллекции `List`, `ArrayList`, `LinkedList` для хранения результата. ## Результат ```text DataSource.java ManualDataSource.java RandomDataSource.java FileDataSource.java ``` Классы не должны содержать логику сортировки или пользовательского меню.