package 可自动增长容器类;
/**
* 可自动增长的容器类
* @author Administrator
*/
public class Container {
/**容器内部基于数组实现*/
private Object[] o;
private static final int DEFAULTLENGTH = 10;
/**数组长度*/
private int length = DEFAULTLENGTH;
/**数组下标,也是数组中元素个数值*/
private int index = 0;
/**
* 缺省构造器,默认数组长度为10
*/
public Container(){
o = new Object[DEFAULTLENGTH];
}
/**
* 接收一个容器长度的构造器
* @param length
*/
public Container(int length){
this.length = length;
o = new Object[this.length];
}
/**
* 向容器中添加对象
* @param o 添加的对象
*/
public void add(Object o){
//判断数组是否已满
if(this.index >= this.length){
this.length += DEFAULTLENGTH;
Object[] objs = this.o;
//创建一个更大的数组
this.o = new Object[this.length];
//将原数组内容拷贝到新数组中
System.arraycopy(objs, 0, this.o, 0, this.index);
System.out.println("重新申请空间");
}
this.o[index++] = o;
}
/**
* 获取容器中指定位置上的对象
* @param index 索引
* @return Object
*/
public Object get(int index){
return o[index];
}
/**
* 查看容器中的元素个数
* @return int
*/
public int size(){
return index;
}
/**
* 判断容器中是否包含某个对象
* @param o
* @return boolean
*/
public boolean contains(Object o){
for(int i = 0;i<index;i++){
Object obj = this.o[i];
if(obj.equals(o)){
return true;
}
}
return false;
}
/**
* 移除指定索引处的对象
* @param index 索引
* @return Object
*/
public Object move(int index){
return null;
}
/**
* 移除指定对象
* @param o 要移除的对象
*/
public void move(Object o){
}
}
java之可自动增长容器
最新推荐文章于 2022-07-30 16:52:23 发布