成员:明显需要一个数组就可以了。但是为了能够方便的获取容器的状态,比如目前容器里面有多少个对象啊,这些状态信息为实现操作提供支持。所以,要针对每一个操作思考一下,需要什么数据来支持我的操作呢?
操作 需要的数据或者结构
Add 数组,数组初始大小,当数组容量不够时分配的增量
Delete 数组
Update 数组
Search 数组
Size 数组中元素个数
IsEmpty 数组中元素个数
Iterator 数组
ToString 数组
综合以上信息就可以容易得出本列表需要保护哪些数据成员了:
private T[] container;
private int capcity;
private int increment;
private int size;
private int size;
如何实现方法呢?
方法无非是在这些数据上进行特定的操作。需要注意的是,我们的方法实现需要更能够承受异常情况而不能“死”,这在web程序中常常见到,比如用户填写的表单不合法,程序应该能够处理,一个词汇“防御式编程”好像可以说明这个意思。大体的意思就是要先想到的不合法的、特别的情况判断一遍。
对于add操作,我想到了下面的特殊情况:
如果数组满了
扩大数组空间….