List接口的實現類(Vector)(與ArrayList相似,區別是Vector是重量級的組件,使用使消耗的資源比較多。)
阿新 • • 發佈:2019-04-21
list接口 面試經驗 實現 類方法 情況 stack 應該 方法 父類 相似,區別是Vector是重量級的組件,使用使消耗的資源比較多。)
。
LinkedList提供以下方法:(ArrayList無此類方法)
addFirst();
removeFirst();
addLast();
removeLast();
在堆棧中,push為入棧操作,pop為出棧操作。
Push用addFirst();pop用removeFirst(),實現後進先出。
用isEmpty()--其父類的方法,來判斷棧是否為空。
在隊列中,put為入隊列操作,get為出隊列操作。
Put用addFirst(),get用removeLast()實現隊列。
List接口的實現類(Vector)(與ArrayList
結論:在考慮並發的情況下用Vector(保證線程的安全)。
在不考慮並發的情況下用ArrayList(不能保證線程的安全)。
面試經驗(知識點):
java.util.stack(stack即為堆棧)的父類為Vector。可是stack的父類是最不應該為Vector的。因為Vector的底層是數組,且Vector有get方法(意味著它可能訪問到並不屬於最後一個位置元素的其他元素,很不安全)。
對於堆棧和隊列只能用push類和get類。
Stack類以後不要輕易使用。
!!!實現堆棧一定要用LinkedList
(在JAVA1.5中,collection有queue來實現隊列。)
List接口的實現類(Vector)(與ArrayList相似,區別是Vector是重量級的組件,使用使消耗的資源比較多。)