HashSet по существу используется для постоянного поиска времени для элементов. Зачем нужно искать нулевой элемент?Есть ли причина, по которой null может быть элементом HashSet в Java?
ответ
Зачем нужно искать нулевой элемент?
Потому что null
вполне может быть допустимым значением для предмета ... в соответствии с программой, разработанной программистом!
(IMO, что, вероятно, плохая идея, в большинстве случаев, но это на самом деле не до вас и меня, чтобы сделать этот призыв.)
После того, как вы принимаете, что программист может иметь действительный потребительной случай для элемента null
, тогда имеет смысл для HashSet
иметь дело с null
, так что программисту не нужно рассматривать null
как особый случай при помещении его в набор.
При разработке API, существует напряженность между тем, как дизайнер API считает, что API должен быть использован и как пользователь API считает, что следует использовать. Плохая идея для дизайнера API попытаться слишком сильно навязать свое мнение, особенно когда обоснование является спорным.
Также может быть напряжение между общностью и эффективностью. В этом случае нам нужно будет изучить фактическую стоимость исполнения, допустившую null
элементов. На первый взгляд, необходимо провести дополнительный тест, чтобы узнать, есть ли элемент null
. Тем не менее, более глубокий анализ кода может показать, что в альтернативной версии есть неявный тестnull
под капотом ... для рассмотрения случая, когда необходимо выбросить NullPointerException
.