-5
A
回答
1
A PriorityQueue
對您添加的項目進行排序,以便您在撥打take()
時始終檢索到第一個「最小」項。
其中,前提條件是您存儲在那裏的對象可以相互比較,以便隊列可以正確地對它們進行排序。
對於這一點,你有兩個選擇:
- 對象可以實現
Comparable
- 或者你可以提供一個
Comparator
到PriorityQueue
本身,通過其構造。
爲什麼你得到一個錯誤,是因爲您提供的Comparator
是null
,所以PriorityQueue
依靠的對象是Comparable
的原因 - 我猜你的Gokhemon
類是沒有的。所以PriorityQueue
抱怨說它無法正確分揀它的物品。
參考: https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html
優先級隊列的元素根據它們的自然順序進行排序,或者通過在隊列構造的時候提供一比較器,這取決於所使用的構造方法。 (...)優先級隊列依靠自然順序也不允許不可比較的對象的插入(這樣做可能會導致拋出ClassCastException)
0
該圖像示出一個NullPointerException
從PriorityQueue.add
方法中拋出。 (實際上在嵌套調用offer
...)
問題不是隊列是null
。如果這是NPE的話,那麼NPE將被拋入>>您的< <代碼中。問題不在於你用null
比較器實例化隊列。據javadoc稱,這應該起作用。
實際的問題是,您正在向隊列中添加一個null
對象。 javadoc說如果你這樣做,你會得到一個NPE。
相關問題
- 1. 爲什麼我不能將對象添加到我的NSMutableArray
- 2. 爲什麼我不能在類對象中添加register_post_type或taxonomy?
- 3. 爲什麼我不能將字段添加到JS對象?
- 4. 爲什麼我不能一個對象添加到HashSet
- 5. 爲什麼我的對象添加到NSMutableArray不起作用?
- 6. 爲什麼我不能將對象添加到我的List <>中?
- 7. 爲什麼我不能添加對system.web的引用
- 8. 爲什麼我不能添加類
- 9. 爲什麼我不能添加新列到我的用戶表?
- 10. 爲什麼我不能爲我的表單添加邊距?
- 11. 爲什麼我無法將對象添加到對象[]數組?
- 12. 爲什麼我不能訪問我的json中的對象?
- 13. 爲什麼我不能得到我的pulgin的相關對象?
- 14. PriorityQueue,我錯過了什麼?
- 15. 爲什麼我的NSMutableArray對象不能直接添加到UITableView中?
- 16. 爲什麼我不能將我的目錄添加到顛覆?
- 17. 爲什麼我的用戶定義的對象不能構造?
- 18. 爲什麼我不能將任意成員添加到對象實例?
- 19. 爲什麼我不能將對象添加到以下數組中?
- 20. JavaScript - 爲什麼我不能將新屬性添加到「字符串」對象?
- 21. 爲什麼我只能用一個對象填充我的NSArray?
- 22. 爲什麼不顯示我的對象?
- 23. 爲什麼我的對象不能使用sortedArrayUsingDescriptors進行排序?
- 24. 爲什麼我不能調用發佈COM對象的接口
- 25. 爲什麼我不能'使用嵌套的類/對象?
- 26. 爲什麼我不能使用包含mysqli對象的屬性?
- 27. 爲什麼我的添加功能不起作用?
- 28. 爲什麼我不能在foreach中使用這樣的添加?
- 29. 爲什麼我不能在通用IEnumerable對象上調用ToArray?
- 30. 爲什麼我的對象被添加到兩個集合?
你需要給我們更多的東西比這個。你有什麼嘗試? – SubliemeSiem
歡迎來到Stack Overflow。請提供代碼和錯誤本身,作爲文本而不是截圖,最好以[mcve]的形式提供。在那個時候,它可能很容易幫助你。 –
從JavaDoc:*「優先級隊列不允許空元素」*。異常肯定說你嘗試'提供()'null在某處。 –