面試題:實現一個棧操作,將1-12月的英文單詞壓入棧中,然后再將其取出,使用Java代碼實現。
答案:months 數組的每一行都通過push()繼承進入堆棧,稍后用pop()從堆棧的頂部將其取出。要聲明的一點是,Vector操作也可針對Stack對象進行,這可能是由繼承的特質決定的——Stack‘屬于’一種Vector。因此,能對Vector進行的操作也可針對Stack進行。
知識解析:Stack有時也可以稱為“后進先出”集合。換言之,在堆棧里最后“壓入”的東西將是以后第一個“彈出”的。和其他所有的Java集合一樣,壓入和彈出的都是“對象”,所以必須對自己彈出的東西進行“造型”。
一種很少見的做法是拒絕使用Vector作為一個Stack的基本構成元素,而是從Vector中“繼承”一個Stack。這樣,它就擁有了一個Vector的所有特征及行為,另外加上一些額外的Stack行為,很難判斷出設計者到底是明確地想這樣做還是屬于一種固有的設計。
更多Java知識,Java視頻,Java教程盡在動力節點Java培訓,關注動力節點官方微信,獲得一手Java面試題。