Как обойти это ограничение JDK?

Я ищу class из Java Collection Framework, который не допускает нулевые элементы.

Вы знаете его?

Большинство реализаций Queue (с заметным исключением LinkedList ) не принимают значение null .

EnumSet – это реализация специального назначения Set , которая не допускает null значения.

Использовать Constraints :

 import com.google.common.collect.Constraints; ... Constraints.constrainedList(new ArrayList(), Constraints.notNull()) 

от Guava для максимальной гибкости.

ОБНОВЛЕНИЕ. Ограничения Guava в версии 15 устарели, очевидно, без замены.

ОБНОВЛЕНИЕ 2: На данный момент (Guava 19.0-rc2) Constresins все еще существует и больше не устаревает. Однако он отсутствует в Javadoc .

Я боюсь, что Javadoc прав, поскольку MapConstraint устарели и в версии 19 , тоже

Здесь собраны такие коллекции.

Apache Commons Framework – CollectionUtils.addIgnoreNull

Добавляет в myList, если myObj не является нулевым.

org.apache.commons.collections.CollectionUtils.addIgnoreNull(myList, myObj)

Использование Google Guava Predicates (ответ от @Joachim Sauer устарел)

 //list is the variable where we want to remove null elements List nullRemovedList=Lists.newArrayList(Iterables.filter(list, Predicates.notNull())); //Or convert to Immutable list List nullRemovedList2=ImmutableList.copyOf(Iterables.filter(list, Predicates.notNull())); 

Hashtable не разрешает нулевые ключи или значения.

Начните здесь, страница API коллекций . Ознакомьтесь с разделом «См. Также». Следуйте ссылкам. Реализация разрешить или запретить null принимается classом внедрения; просто следуйте ссылкам в разных разделах «См. также», чтобы перейти к classам реализации (например, HashMap), а затем посмотрите на методы вставки (как правило, на add, push или put), чтобы увидеть, разрешает ли эта реализация null .

  • Как вы строите std :: string со встроенным нулем?
  • C #: должны ли переменные объектов присваиваться null?
  • Свободно (ptr), где ptr является NULL поврежденной памятью?
  • Неинициализированный объект против объекта Инициализирован в NULL
  • Проверка, является ли это нулевым
  • Что такое null в Java?
  • Странное поведение Java по умолчанию при перегрузке метода
  • Ошибка: значение null в записи: incrementalFolder = null
  • Назначает ли объекты null в сборку мусора Java?
  • C #: Передача null в перегруженный метод - какой метод вызывается?
  • Является ли null объектом?
  • Давайте будем гением компьютера.