Java的LinkedList/Deque中add/offer/push,remove/pop/poll的区别
它们来自不同的接口
add/remove源自集合,所以添加到队尾,从队头删除;offer/poll源自队列(先进先出 => 尾进头出),所以添加到队尾,从队头删除;push/pop源自栈(先进后出 => 头进头出),所以添加到队头,从队头删除;-
offerFirst/offerLast/pollFirst/pollLast源自双端队列(两端都可以进也都可以出),根据字面意思,offerFirst添加到队头,offerLast添加到队尾,pollFirst从队头删除,pollLast从队尾删除。
总结: -
add/offer/offerLast添加队尾,三个方法等价; -
push/offerFirst添加队头,两个方法等价。 -
remove/pop/poll/pollFirst删除队头,四个方法等价; pollLast删除队尾。
LinkedList当做集合list,那么应该用add/remove,如果想用作队列,则使用offer/poll,如果用作栈,则使用push/pop,如果用作双端队列,则使用offerFirst/offerLast/pollFirst/pollLast。参考:链接
浙公网安备 33010602011771号