看板java
标 题Re: [问题] 新手嫩问题 (泛用型Stack)
发信站SayYA 资讯站 (Wed Mar 22 10:16:03 2006)
转信站ptt!ctu-reader!news.nctu!SayYa
※ 引述《[email protected] (痞子军团团长)》之铭言:
> ※ 引述《[email protected] ( )》之铭言:
> : 我现在要写一个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