45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
|
|
# Техническое задание: кастомный контейнер List
|
||
|
|
|
||
|
|
## Задача
|
||
|
|
|
||
|
|
Реализовать собственный контейнер для хранения объектов, не используя готовые реализации `List`, `ArrayList` и `LinkedList`.
|
||
|
|
|
||
|
|
## Требования
|
||
|
|
|
||
|
|
1. Создать интерфейс `MyList<T>`.
|
||
|
|
|
||
|
|
2. В интерфейсе определить основные операции:
|
||
|
|
|
||
|
|
- `add(...)`;
|
||
|
|
- `get(...)`;
|
||
|
|
- `set(...)`;
|
||
|
|
- `remove(...)`;
|
||
|
|
- `size()`;
|
||
|
|
- `isEmpty()`.
|
||
|
|
|
||
|
|
3. Создать класс `MyLinkedList<T>`, реализующий `MyList<T>`.
|
||
|
|
|
||
|
|
4. Реализовать контейнер на основе собственных узлов `Node<T>`.
|
||
|
|
|
||
|
|
5. Контейнер должен поддерживать:
|
||
|
|
|
||
|
|
- добавление элемента;
|
||
|
|
- получение элемента по индексу;
|
||
|
|
- замену элемента по индексу;
|
||
|
|
- удаление элемента по индексу;
|
||
|
|
- получение количества элементов;
|
||
|
|
- проверку на пустоту.
|
||
|
|
|
||
|
|
6. Обработать некорректные индексы с помощью исключений.
|
||
|
|
|
||
|
|
7. Контейнер не должен зависеть от класса `Student`, сортировки или пользовательского интерфейса.
|
||
|
|
|
||
|
|
## Результат
|
||
|
|
|
||
|
|
Должны быть реализованы:
|
||
|
|
|
||
|
|
```text
|
||
|
|
MyList.java
|
||
|
|
MyLinkedList.java
|
||
|
|
```
|