如何解决这个JDK限制?
我正在从Java集合框架中寻找一个不允许空元素的类。
你知道吗?
大多数Queue实现(具有LinkedList的显着exception)不接受null 。 
  EnumSet是一个不允许null值的特殊用途的Set实现。 
 使用Constraints : 
 import com.google.common.collect.Constraints; ... Constraints.constrainedList(new ArrayList(), Constraints.notNull()) 
从番石榴获得最大的灵活性。
更新:番石榴约束已被弃用在版本15 – 显然没有更换。
更新2:截至目前(番石榴19.0 – rc2) 约束仍然存在,不再弃用。 但是,它从Javadoc中丢失了。
 我担心Javadoc是正确的,因为MapConstraint已经在Release 19中被弃用了 
这里有一个这样的集合的综述。
Apache Commons框架 – CollectionUtils.addIgnoreNull
如果myObj不为null,则添加到myList。
 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())); 
散列表不允许空键或值。
从这里开始,收集API页面 。 看看“另请参阅”部分。 按照链接。 执行类决定允许还是不允许null ; 只需按照各种“请参阅”部分中的链接进入实现类(例如HashMap),然后查看插入方法(通常是添加,推送或放置的变体),以查看该实现是否允许为空 。