Если число использованных ключей полностью определяется текущими данными, обычно лучше вычислять его, а не хранить второе синхронизируемое состояние.
Зачем нужна отдельная функция/состояние для подсчёта использованных ключей — можно ли это вычислить, а не хранить отдельно?
Если число использованных ключей полностью определяется текущими данными, обычно лучше вычислять его, а не хранить второе синхронизируемое состояние.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Если число использованных ключей полностью определяется текущими данными, обычно лучше вычислять его, а не хранить второе синхронизируемое состояние.
Для Set это size, для выбранных элементов — производное вычисление из единственного источника истины. Дублирование состояния создаёт риск рассинхронизации после удаления или сброса. Кеширование либо инкрементальный счётчик оправданы измеренной стоимостью вычисления, но требуют чётких инвариантов. Без конкретной структуры нельзя выбрать точную формулу подсчёта.