java - JDK里为什么LinkedList实现了Deque,而ArrayList却没实现?
伊谢尔伦
伊谢尔伦 2017-04-17 11:41:37
0
1
970

可以看到LinkedList implements Deque, 而ArrayList却没有。
另外还有一个ArrayDeque类。

为什么不让List接口继承Deque呢?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(1)
伊谢尔伦

Deque 繼承自 Queue,其實只要想想 List 不會繼承自 Queue 就可以了。誠然,List 可以輕鬆用 remove(Object o) 實現 Queueremove(),但是一般不會這麼設計,因為它們的意義不一樣。是否要用 List 實作 Queue,這個選擇交給具體的類別來決定,LinkedList 的答案是 yes,ArrayList 則是 no。

至於為什麼ArrayList 沒實現Queue,這是因為ArrayList 本身只是一個披著List 皮的Array,它是不建議從頂部插入新數據的,否則效率會極差。

ArrayDeque 則是一個教科書式的 deque 實現,它的存在沒什麼爭議。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板