回答
大多數Queue
實現(有明顯的例外LinkedList
)不接受null
。
EnumSet
是一個特殊用途的Set
執行,不允許null
值。
'EnumSet'只適用於Enumerations ... –
使用Constraints
:
import com.google.common.collect.Constraints;
...
Constraints.constrainedList(new ArrayList(), Constraints.notNull())
從Guava最大的靈活性。
更新:番石榴約束已被棄用Release 15 - 顯然沒有更換。
UPDATE 2:截至目前(番石榴19.0-rc2)Constrains仍然存在,不再棄用。但是,它從Javadoc中缺失。
我怕的Javadoc是正確的MapConstraint
已經在Release 19被棄用,也
+1爲你的答案,但我想堅持與Java框架;) – Stephan
好的,那麼我可以爲你提供例如來自JDK的'java.util.concurrent.ConcurrentSkipListSet'。或'Collections.newSetFromMap(新的ConcurrentHashMap
不幸的是,'Constraints'已被棄用,並計劃在番石榴16.0中刪除:-( –
開始here, the Collections API Page。查看「另請參閱」部分。按照鏈接。決定允許還是不允許 null由實現類制定;只需按照各種「請參閱」部分中的鏈接進入實現類(例如HashMap),然後查看插入方法(通常是添加,推送或放置的變體),以查看該實現是否允許爲 null。
Apache Commons Framework - CollectionUtils.addIgnoreNull
添加到MYLIST如果MyObj中不爲空。
org.apache.commons.collections.CollectionUtils.addIgnoreNull(myList, myObj)
使用谷歌番石榴謂詞(從@Joachim紹爾答案是不建議使用)
//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()));
- 1. 解決MaxReceivedMessageSize限制
- 2. 解決max_file_uploads限制?
- 3. 如何解決instagram api標籤限制?
- 4. 如何解決VBA OnTime字符限制?
- 5. 如何解決twitter API速率限制?
- 6. 如何解決localStorage的大小限制
- 7. 如何解決RPM大小限制?
- 8. 如何解決salesforce API限制
- 9. 如何解決畫布seo限制?
- 10. 如何解決此評分?
- 11. 如何解決此錯誤?
- 12. 如何解決此佈局?
- 13. 如何解決此java.io.FileNotFoundException?
- 14. 如何解決此System.UnauthorizedAccessException? C#
- 15. 如何解決此RuntimeException?
- 16. 如何解決此錯誤
- 17. 如何解決此錯誤?
- 18. 如何解決此查詢?
- 19. 如何解決此ReferenceError?
- 20. 如何解決此java.lang.NoClassDefFoundError
- 21. 如何解決此佈局
- 22. 如何解決此錯誤?
- 23. 如何解決此System.IO.FileNotFoundException
- 24. 如何解決此查詢?
- 25. java.nio.file.FileAlreadyExistsException如何java7解決此
- 26. 如何解決此問題?
- 27. 如何解決此異常?
- 28. 如何解決此警告?
- 29. 如何解決此代碼中鉻的控制檯此錯誤?
- 30. 解決500行限制
應該發生什麼?如果你只是想忽略list.add(null),我會創建一個你最喜歡的實現的子類,覆蓋add()並檢查空值 – leifg
也許更好的方法是從不插入空值到第一位?容忍(並因此防止)空值通常是一種不好的做法。 –
@leifg不要只是覆蓋添加,但也addAll!否則,你可能會有一個有趣的驚喜。 – Voo