List接口的實現類(Vector)(與ArrayList類似,區別是Vector是重量級的組件,使用使消耗的資源比較多。)

 

LinkedList提供如下方法:(ArrayList無此類方法)java

addFirst();    面試

removeFirst();數組

  addLast();安全

  removeLast();併發

在堆棧中,push爲入棧操做,pop爲出棧操做。線程

 

PushaddFirst()popremoveFirst(),實現後進先出。接口

isEmpty()--其父類的方法,來判斷棧是否爲空。隊列

 

在隊列中,put爲入隊列操做,get爲出隊列操做。資源

PutaddFirst()getremoveLast()實現隊列。rem

 

List接口的實現類(Vector)(與ArrayList類似,區別是Vector是重量級的組件,使用使消耗的資源比較多。)

結論:在考慮併發的狀況下用Vector(保證線程的安全)。

在不考慮併發的狀況下用ArrayList(不能保證線程的安全)。

 

面試經驗(知識點):

java.util.stackstack即爲堆棧)的父類爲Vector。但是stack的父類是最不該該爲Vector的。由於Vector的底層是數組,且Vectorget方法(意味着它可能訪問到並不屬於最後一個位置元素的其餘元素,很不安全)。

對於堆棧和隊列只能用push類和get類。

Stack類之後不要輕易使用。

!!!實現堆棧必定要用LinkedList

(在JAVA1.5中,collectionqueue來實現隊列。)

相關文章
相關標籤/搜索