我们都知道一个数组一旦创建之后,那么它的大小和数据类型也就确定了,不能随意改变,这就给我们带来了很多麻烦,比如要给数组中添加元素,就必须重新创建个数组才能实现,所以就有一种方法来弥补数组的这种缺陷——自定义队列。
在java中并没有队列这个数据结构,所以只能自己来写,其实这种自定义队列也是用数组来实现,只不过数组的类型是对象型的,这样就可以存不同的数据类型的数据了。
Object []src=new Object[0]; // 这个就是定义一个对象型的数组。大小为0
//增加元素
public void add(Object obj){ //obj就是要增加的元素
Object []dest=new Object[src.length+1]; // 因为是增加元素,所以数组的长度要+1
for(int i=0;i<src.length;i++){
dest[i]=src[i];
}
dest[src.length]=obj;
src=dest; //相当于return dest这个数组
}
//获取元素
public Object get(int temp){
return src[temp];
}
//删除元素
public void delete(Object obj){
int temp = 0;
Object []dest=new Object[src.length-1]; //定义一个中间数组,长度比原数组少一
for(int i=src.length-1;i>=0;i--){
if(src[i]==obj){ //判断要删除的对象在那个位置,然后用temp记录
temp=i;
}
}
for(int i=0;i<temp;i++){
dest[i]=src[i]; // 将temp前面的元素通过中间数组保存
}
for(int i=temp;i<src.length-1;i++){
dest[i]=src[i+1];
}
src=dest;
}
//输出元素
public void prints(){
for(int i=0;i<src.length;i++){
System.out.print(src[i]+" ");
}
}
//修改元素
public void change(int temp,Object obj){
src[temp]=obj;
}
//获取长度
public int length(){
return src.length;
}