永发信息网

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

答案:4  悬赏:40  手机版
解决时间 2021-02-15 06:16
java怎么定义增加和删除的方法来实现改变数组的大小
最佳答案
自动增长数组

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;
}
}
全部回答
首先数组是不能动态增加的. 如果想要这样的效果的话,不如用list list = new arraylist(); list.add(new integer(33)); list.add(........
想简单用ArrayList呗,本来这个就是动态的;想自己实现思路就是先有个初始数组大小,超过初始大小时重新创建一个新的扩容的数组拷贝元素进去呗。
数组长度在定义的时候就已经定死了 没办法增加和删除 所谓增加数组长度,是新建一个长度更大的数组,并把原数组数据copy过去
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
福建索菲斯屏山酒店(福州鼓楼区)地址有知道的
中海·紫金苑F区这个地址在什么地方,我要处
以人工费+机械费为计费基础的工程,在综合单
怎么去香港做鉴定宝宝是男是女
龙海龙池酒店(漳州龙海)怎么去啊,我要去那办
厦门白鹭宾馆(厦门思明)地址在哪,我要去那里
Would you mind ( ) us in the game A joinin
横县李记鱼生馆在什么地方啊,我要过去处理事
翻译1句英语: 另外,关于这个订单,收到后我
液晶电视在黑色背景下屏幕中间有白色光团,
29、不可接受的损害风险通常是指什么?
根据下列信息,回答有关问题。(8分)小明对
户口在农村,二轮土地承包村里没人通知我们分
惠安金贯大酒店(泉州惠安县)地址在哪,我要去
御景尚品在哪里啊,我有事要去这个地方
推荐资讯
飘香阁烧烤火锅在哪里啊,我有事要去这个地方
如何去掉不锈钢上的氧化的痕迹
永青玻璃移门怎么去啊,有知道地址的么
东风x5发动机防盗认证失败
重庆江北区离江津,渝北,沙坪坝哪个区最近?
诸城大里户怎么走 起点景芝镇 终点大
【我愿意英文】我愿意的英文我愿意《英文意思
杭州湾国际酒店-会议室我想知道这个在什么地
请问在文物收藏里青铜器铸造中的合范法和失腊
【查看并回应】把下列诗句补充完整并回答问题
承包人覆盖工程隐蔽部位后,监理人对质量有疑
2(x的3次方)的2次方×x的3次方-(3x的3次方)
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?