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