我不熟悉集合,我想弄清楚为什么Java中的LinkedList类中有这么多类似的方法。
对前女友。
- element()返回列表的头而不删除,peek和peekFirst也是如此
- addLast, offer, offerLast也是类似的
- remove and removeFirst
这些不同的功能有什么特定的用途吗?
谢谢你的建议,请随时纠正我
LinkedList
是一个List
,但它也是一个Deque
,也是一个Queue
。
这3个接口提供了不同的功能。例如,element
和peek
是在Queue
中定义的,但是其中一个返回一个特殊值,而另一个在没有值可返回时抛出异常。peekFirst
是特定于Deque
的,因为两端的Deque
都可以是peeked
。
同样的原则也适用于其他方法。(add和offer是return和exception的问题,offerFirst是Deque特定的方法…)
我应该同意,虽然,Deque
接口是有点奇怪。通过强制实现实现方法的Queue
版本,加上Deque
版本(两端各一个),它基本上将Queue
所做的一切复制了三倍。它甚至在文档中有详细说明:
从Queue接口继承的方法完全等同于Deque方法