2014-07-11 66 views
-1

我是新來的集合,我想弄清楚爲什麼Java中的LinkedList類有這麼多類似的方法。java中的鏈表(集合)

for ex。

  1. 元素()返回列表的頭,但不刪除但這樣做窺視peekFirst
  2. addlast僅,報價,offerLast也都差不多
  3. 撈出removeFirst

做這些不同的功能有任何特定的應用?

感謝您的任何意見,並隨時糾正我

+3

_Some功能具有不同的返回types_。所以他們**不是**一樣。有些還會拋出異常,其他異常會返回'null'。諮詢Javadoc。 –

回答

3

LinkedListList,但它也是一個Deque這也是一個Queue

這3個接口提供功能的變化。例如,在Queue中定義了elementpeek,但是如果沒有要返回的值,則返回一個特殊值,而另一個返回異常。 peekFirst特定於Deque,因爲Deque可以是兩端的peeked

相同的原則適用於其他方法。 (添加vs報價是一個返回與異常的問題,offerFirst是一個Deque特定的方法...)。

但我應該同意,Deque接口有點奇怪。它基本上重複了Queue所做的一切,方法是強制執行該方法的Queue版本,再加上兩個版本(每一個都有一個版本)Deque。它甚至闡明在doc:

從隊列接口繼承的方法完全等效於deque的方法