可以看到LinkedList implements Deque, 而ArrayList却没有。
另外还有一个ArrayDeque类。
为什么不让List接口继承Deque呢?
可以看到LinkedList implements Deque, 而ArrayList却没有。
另外还有一个ArrayDeque类。
为什么不让List接口继承Deque呢?
15 回答7.1k 阅读
2 回答3.4k 阅读✓ 已解决
3 回答7.1k 阅读✓ 已解决
5 回答4.8k 阅读
3 回答5.2k 阅读
4 回答2.4k 阅读
2 回答2.3k 阅读✓ 已解决
Deque
继承自Queue
,其实只要想想List
不会继承自Queue
就可以了。诚然,List
可以轻松用remove(Object o)
实现Queue
的remove()
,但是一般不会这么设计,因为它们的含义不一样。是否要用List
实现Queue
,这个选择交给具体的类来决定,LinkedList
的答案是 yes,ArrayList
则是 no。至于为什么
ArrayList
没实现Queue
,这是因为ArrayList
本身只是一个披着List
皮的Array
,它是不建议从顶部插入新数据的,否则效率会极差。ArrayDeque
则是一个教科书式的 deque 实现,它的存在没什么争议。