JAVA中可否重新设定数组大小?
原已经分配了一定大小的数组,但后来发现不够用,我想扩大一下数组大小,用java能不能实现?怎样实现?比如:
Object[] s=new Objcet[10];
我想扩大到20个怎样实现?
先谢谢了.
------解决方案--------------------用ARRAYLIST不就可以了吗?
------解决方案--------------------请用System.arrayCopy来完成该任务.速度很快.
------解决方案--------------------int index = 10;//index的作用域必须是整个类
Object[] s=new Objcet[index];
假如你要装20个对象,就这样
if (i > = index) {
index *= 2;
Object[] o = new Object[index];
for(int i = 0; i < s.length; i++)
o[i] = s[i];
}
s[i] = ss;
i++;
}
这样数组就可以扩大很多倍
------解决方案--------------------楼上的说得太对了!
数组的话每次都存在一个初期化大小的问题
而list的话就不需要
------解决方案--------------------更正,经过多次测试,arraycopy比我的方法快了约50毫秒,那还是用arraycopy好,代码如下
if (i > = index) {
index *= 2;
Object[] o = new Object[index];
System.arraycopy(s, 0, o, 0,s.length);
s[i] = ss;
i++;
}
不过用ArrayList方便些,省的写这么多