ArtemGet / task_products_storage

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Тестовое задание в Ozon, Поисковый рантайм.

Компилируется под JDK 8 и выше. Проект собирается с помощью Maven.

Для хранения продуктов используется словарь: ключ - атрибут, значение - множество id, в которых есть данный атрибут. Каждый атрибут продукта кладется в словарь как ключ, в значение - id продукта. При совпадении атрибутов у разных продуктов, в значение добавляется id нового продукта. Из словаря достаются значения по атрибуту. Итоговые id товаров - общие id по заданным атрибутам.

Ассимптотическая сложность поиска продуктов содержащих заданные атрибуты - O(n*m), где n - количество введенных в поиск атрибутов, m - количество товаров, содержащих данный атрибут.

Компиляция(Запустить в терминале из корня проекта):

mvn compile

Запуск тестов:

mvn test - Провести все тесты

mvn -Dtest=ProductsStorageTest#put** test - Провести все тесты создания структуры

mvn -Dtest=ProductsStorageTest#search** test - Проверить все тесты поиска по атрибуту

About


Languages

Language:Java 100.0%