java怎么定义增加和删除的方法来实现改变数组的大小
答案:4 悬赏:40 手机版
解决时间 2021-02-15 06:16
- 提问者网友:呐年旧曙光
- 2021-02-14 18:55
java怎么定义增加和删除的方法来实现改变数组的大小
最佳答案
- 五星知识达人网友:青灯有味
- 2021-02-14 19:19
自动增长数组
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
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;
}
}
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
}
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;
}
}
全部回答
- 1楼网友:未来江山和你
- 2021-02-14 21:26
首先数组是不能动态增加的.
如果想要这样的效果的话,不如用list list = new arraylist();
list.add(new integer(33));
list.add(........
- 2楼网友:怙棘
- 2021-02-14 20:29
想简单用ArrayList呗,本来这个就是动态的;想自己实现思路就是先有个初始数组大小,超过初始大小时重新创建一个新的扩容的数组拷贝元素进去呗。
- 3楼网友:街头电车
- 2021-02-14 20:22
数组长度在定义的时候就已经定死了 没办法增加和删除
所谓增加数组长度,是新建一个长度更大的数组,并把原数组数据copy过去
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯