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