Re: [問題] 新手嫩問題 (泛用型Stack)
※ 引述《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
java 近期熱門文章
PTT數位生活區 即時熱門文章