读书人

java 动态数组的有关问题

发布时间: 2011-12-24 23:03:24 作者: rapoo

java 动态数组的问题
请教下,
由于前面不能确定数组有多大,我定义一个动态数组
String [] qu_s=new String[0];
qu_s=new String[];

......
然后再往数组里赋值操作,这样做有问题吗?


[解决办法]
不能,你用集合吧ArrayList,HashMap
[解决办法]
String [] 是运行时分配空间,但是,一旦分配就不能动态增长,像楼上说的那样,使用ArrayList等集合。
[解决办法]
改用List或者Vector
[解决办法]
数组必须要在初始化时决定长度。
要想运态增长,只能是集合类。
要不你就定义一个以你的程序不可能越界长度的数组。
[解决办法]
这是一个扩充数组的方法,不过还是推荐你用ArrayList等集合.
public static Object arrayGrows(Object oldArray) {
Class cl = oldArray.getClass();
if(!cl.isArray()) return null;
Class componentType = cl.getComponentType();
int length = Array.getLength(oldArray);
int newLength = length * 11/10 + 10;
Object newArray = Array.newInstance(componentType, newLength);
System.arraycopy(oldArray, 0, newArray, 0, length);
return newArray;
}

[解决办法]
实际上在 ArrayList 内部也是使用 System.arraycopy() 来实现的。

为了不重复发明轮子,还是使用 ArrayList 吧。
[解决办法]
好的办法是使用ArrayList,虽然你也可以自己实现一个简单的ArrayList,可是,除非练习,为什么要自己实现呢?

用最古老的方法定义一个数据结构,一个数组加一个有效长度
String[] qu_s=new String[10];
int len=0;

然后向里添加时判断if(len> =qu_s.length) qu_s=new String(len*2);然后每次添加时都别忘了给len更新。

除非做练习,不要这样做,ArrayList都实现好了,而且经过了这么长时间的测试使用和DEBUG,质量信得过,基本上能想到的功能也都提供了,呵呵。
[解决办法]
用vector

[解决办法]
用JS代码
[解决办法]
ArrayList al= new ArrayList(); //定义动态数组
al.add( " ");//用这个方法可以往数组写数据 内存有多大可以写多大

[解决办法]
动态数组用Arraylist比较好
[解决办法]
一维的 最好用 集合

读书人网 >J2SE开发

热点推荐