2014-10-08 84 views
1

我必須爲類編寫一個堆棧,並且當我理解堆棧如何工作的概念時,我沒有被告知它們是使用數組還是鏈接列表或其他方法創建的?大多數堆棧是如何創建的?應該從數組或鏈接列表java創建堆棧?

+0

鏈接列表似乎更合適。它具有良好的增長行爲,並且不需要通過索引來訪問元素。 – DwB 2014-10-08 18:15:10

+2

最好的實現取決於應用程序的要求。 – megadan 2014-10-08 18:29:03

回答

4

ArrayDeque是堆棧概念的可靠的類實現。這個類以最有效的方式實現了堆棧。請查看各種方法的細節的類實現。

http://www.docjar.com/html/api/java/util/ArrayDeque.java.html

更具體地說,看public E pollFirst(){...}public void addFirst(E e)

+0

您能否告訴我們一個源代碼,顯示一個deque比一個簡單的鏈表更有效率?我毫不懷疑java.util.Stack會更快,因爲它也是基於數組的,但是你能否支持它比LinkedList更快的說法? – Tim 2014-10-08 19:11:10

+0

答案似乎與這個問題完全無關。 OP詢問他應該選擇哪個實現選項,而不是要使用哪個JRE類。 – Durandal 2014-10-08 19:13:44

+0

@Durandal我不會使用「完全不相關」,因爲我已經指示用戶瞭解最先進的實現是什麼樣子。 – 2014-10-08 19:18:46

1

這兩個選項,數組和鏈表都適用。

鏈接列表可能更簡單,因爲您不必擔心數組大小。另一方面,基於數組的實現可能具有更好的運行時行爲,並且可以更容易調試(因爲它比調試器中的鏈表更容易查看數組)。

選擇任何你感到舒服的東西。