Re: [問題] 新手嫩問題 (泛用型Stack)

看板java作者時間19年前 (2006/03/25 02:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《PsMonkey.bbs@ptt.cc (痞子軍團團長)》之銘言: > ※ 引述《justmaker.bbs@bbs.wretch.cc ( )》之銘言: > : 我現在要寫一個Stack > : 然後目前只有個叫Student的class > : 我想問的是 > : 要怎樣才能寫出一個泛用型的Stack > : 就是假設我用array去implement這個Stack > : 那不是裡面的constructor就得要寫成 Student stack[] = new student[StackSize]; > : 但我希望這個Stack以後teacher, professor....等也可以用啊 > : 請問要怎麼做呢 > 你可以參考 java.util.Vector 的做法 > 簡單地說,就是 constructor 只接收 Object[] > 其他 cast 的事情,交給 programmer 去煩惱 嗯, 關於這個問題有幾個方向 1. 直接使用Stack類別 (那就不用寫了是唄) 2. 參考相似的collection提供的界面實作之, 和Stack比較像的就是以一定順序儲存的collection 像是ArrayList、Vector 於是你可以打開api看一下, 以ArrayList為例: ====================================================== public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable ====================================================== 所以, 只要繼承了AbstractList並你實作了這些介面 就是一個泛用的Stack了, 當然你可以依需要把用不到的介面拿掉. 像是RandomAccess :) 也能為需要存取的method做thread-safe的設計 3. 去啃一下collection framework的規定自己硬寫出來也是可以的 -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: 163.26.34.214
文章代碼(AID): #1493jG00 (java)
文章代碼(AID): #1493jG00 (java)