этап 3: Реализация модуля хранения на самописной хэштаблице Храним соответвие <Имя кота> → <цвет, возраст, вес> • Имя кота: String; служит идентификатором • Цвет: String • Возраст: Int • Вес: Float Чтобы хранить пару из ключа и значения, храним в таблице пары из имени кота и data class’а, соответствующего значению <цвет, возраст, вес> Хэш-таблица реализована как массив со связными списками пар. Одновременно может храниться любое количество пар. Алгоритм хэширования — на выбор студента.Для вхождения “Имя → цвет, возраст, вес” фиксируется формат вывода, на усмотрение исполнителя. Вывод вхождений осуществляется всегда в этом формате. Команды для взаимодействия через CLI: • create • Не гарантируется уникальность id, т.е. в списке не обязательно хранится пара, в которой первый компонент равен id. • Формат ввода: “create <имя> <цвет> <возраст> <вес>” • Выводит созданное вхождение • read • Не гарантируется корректность id, т.е. в списке не обязательно хранится пара, в которой первый компонент равен id. • Формат ввода: “read <имя>” • Выводит прочитанное вхождение • update id • Не гарантируется корректность id, т.е. в списке не обязательно хранится пара, в которой первый компонент равен id. • Формат ввода: “update <имя> <цвет> <возраст> <вес>” • Выводит прочитанное вхождение • delete id • Не гарантируется корректность id, т.е. в списке не обязательно хранится пара, в которой первый компонент равен id. • Формат ввода: “delete <имя>” • Выводит OK • where weight= • Выводит все вхождения где вес кота равен value с epsilon = 0.001 • Формат ввода: “ where weight=” • readall • Выводит все пары ключей и значений в произвольном порядке • Формат ввода: “readall” • Каждое вхождение выводится с новой строки.