Понятно, что эффективность поиска общего класса HashSet<T>
выше, чем общего класса List<T>
. Просто сравните ключ на основе хеша с линейным подходом в классе List<T>
.
Однако вычисление ключа хеша само по себе может занять несколько циклов ЦП, поэтому для небольшого количества элементов линейный поиск может стать реальной альтернативой HashSet<T>
.
Мой вопрос: где безубыточность?
Чтобы упростить сценарий (и быть справедливым), давайте предположим, что класс List<T>
использует метод Equals()
элемента для идентификации элемента.