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

 我来答
幽冥神者
2012-05-07 · TA获得超过3213个赞
知道大有可为答主
回答量:1953
采纳率:50%
帮助的人:1793万
展开全部
数组长度在定义的时候就已经定死了 没办法增加和删除
所谓增加数组长度,是新建一个长度更大的数组,并把原数组数据copy过去
更多追问追答
追问
我就是想用你说的把原数组数据copy过去 来完成,建一个add()方法,使他增加元素后再copy,建一个delete()方法,使他删除元素后再copy过去,这两个方法怎么写?
追答
这个可麻烦了。如果你想要完整的代码,可以查一下JAVA数据结构,链表
如果只是想用这个功能的话 直接用ArrayList这个工具类就可以了
Andvar
2012-05-08 · TA获得超过155个赞
知道答主
回答量:30
采纳率:0%
帮助的人:23.6万
展开全部
想简单用ArrayList呗,本来这个就是动态的;想自己实现思路就是先有个初始数组大小,超过初始大小时重新创建一个新的扩容的数组拷贝元素进去呗。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
似灵杉0Ey
推荐于2016-09-10 · TA获得超过313个赞
知道小有建树答主
回答量:341
采纳率:55%
帮助的人:146万
展开全部
自动增长数组

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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1136170886
2012-05-08 · 超过12用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:16.8万
展开全部
你的数组长度要是不确定的话最好用集合,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式