tandemservice junior test
Реализация интерфейса IElementNumberAssigner
.
В кратце: алгоритм находит свободный номер (номер, который не присвоен ни одному элементу). Последовательно присваивает нужный номер элементам, используя данные шаги:
- Если нужный номер (который будет присвоен текущему элементу) свободен, то присвоить и обновить свободный номер. Свободным номером становится номер, который был у текущего элемента.
- Иначе освободить номер и сделать тоже самое.
- Освобождение номера n происходит при помощи присваивания свободного номера элементу, чей номер является n.
Более развернутое описание и представление формальных шагов алгоритма в Task2Impl.java
.
Легкое улучшение алгоритма пока не реализовал, будет сделано чуть позже (UPD: уже никогда). Оно позволит в некоторых случаях устанавливать верные номерки у двух элементов устанавливать за три вызова setupNumber()
.