java怎么定义增加和删除的方法来实现改变数组的大小

如题所述

数组长度在定义的时候就已经定死了 没办法增加和删除
所谓增加数组长度,是新建一个长度更大的数组,并把原数组数据copy过去追问

我就是想用你说的把原数组数据copy过去 来完成,建一个add()方法,使他增加元素后再copy,建一个delete()方法,使他删除元素后再copy过去,这两个方法怎么写?

追答

这个可麻烦了。如果你想要完整的代码,可以查一下JAVA数据结构,链表
如果只是想用这个功能的话 直接用ArrayList这个工具类就可以了

追问

add()方法是图片上的,我想问删除怎么写?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-08
想简单用ArrayList呗,本来这个就是动态的;想自己实现思路就是先有个初始数组大小,超过初始大小时重新创建一个新的扩容的数组拷贝元素进去呗。
第2个回答  推荐于2016-09-10
自动增长数组

Java code?
public class ArrayExp{
private Object[] data ;
private int index=0;
public ArrayExp(int size){ //创建链表大小
data=new Object[10];
}
private void expand(){ //扩充
Object[] data2=new Object[data.length*2];
System.arraycopy(data,0,data2,0,data.length);
data=data2;
}
public void add(Object o){ //添加
if (data.length==index) expand();
data[index]=o;
index++;
}
public void add(int pos,Object o){ //在指定位置添加
if (data.length==index) expand();
for(int i=index;i>pos;i--){
data[i]=data[i-1];
}
data[pos]=o;
index++;
}

public void change(int pos,Object o){ //替换
data[pos]=o;
}

public Object remove(int pos){ //删除
Object o=data[pos];
index--;
for(int i=pos;i<index;i++){
data[i]=data[i+1];
}
return o;
}
public int size(){ //返回大小
return index;
}
public Object get(int pos){ //返回指定位置值
return data[pos];
}
public void clear(){ //清除
index=0;
}
public boolean isEmpty(){ //置空
return index==0;
}
public Object[] toArray(){ //返回数组
return data;
}
}
第3个回答  2012-05-08
你的数组长度要是不确定的话最好用集合,

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网