我试图理解,为什么我们需要 Deque
TRONG Offer
Và OfferLast
方法,因为这两种方法都在Deque
的结尾/尾部。它有什么意义?
Queue 接口(interface)是在Java 5 中添加的。它定义了offer
。方法,在末尾添加一个元素。
(offer
方法和 thêm vào
方法都返回 boolean 值。它们的区别在于 thêm vào
允许拒绝该元素并仅在该元素是时才返回 false已经存在于集合中。offer
方法可以因为其他原因拒绝该元素,例如队列已满。)
有了 Queue.offer
,语义上几乎没有问题,因为元素通常被添加到队列的尾部并从头部移除。
Deque接口(interface)是在 Java 6 中添加的。双端队列允许在头部和尾部添加和删除元素,因此 Deque
定义了 offerFirst
VàofferLast
方法。 deque 也是一个队列,所以 Deque
Đúng Queue
的子接口(interface)。因此它继承了 Queue
của offer
方法。这就是 Deque
以 offer
Và offerLast
结束的方式。
我们或许可以在不添加 offerLast
的情况下解决问题,但这会在 Deque
接口(interface)中留下不对称性。许多操作同时作用于头部和尾部(add、get、offer、peek、poll、remove)所以它们都具有 -first 和 -last 变体是有意义的,即使这增加了冗余。这种冗余也出现在其他 Queue
方法中,例如 thêm vào
Và addLast
,peek
Và peekFirst
,poll
Và pollFirst
,以及 remove
Và removeFirst
.
Tôi là một lập trình viên xuất sắc, rất giỏi!