java中String[]可不可以不预先定义数组的长度,随后边的使用而一点一点的开辟呢?

也就是定义的String[]的时候,我不知道需要多大的数组。。。怎么办?预先定义一个比较大的数组是不是有点浪费啊。。。

java string[]字符串数组不可以不预先定义数组的长度,否则会报错如下代码:

package com.qiu.lin.he;

public class Ceshi {
public static void main(String[] args) {

String[] str = new String[] {};// äº‹å…ˆæ²¡æœ‰å®šä¹‰é•¿åº¦
System.out.println(str);// å¯ä»¥è¾“出内存地址,没有报错
str[0] = "测试";
System.out.println(str[0]);//报错
}
}

运行结果如下:

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-17

不可以,java数组在new的时候必须确定长度,不能动态更改长度。

你的这种方式推荐用list,list不用关心长度,可以一直往里加。

例如:

List lst = new ArrayList();//定义一个list
lst.add("a");//往里加一个元素
lst.add("a1");//往里加一个元素
lst.add("a2");//往里加一个元素
不用预定义长度,可以随时往里加元素。

第2个回答  2012-03-13
不可以,语法就是这样规定的,你这样的需求最好用ArrayList,

ArrayList会自动增加长度的,

而且很方便转化为数组String[] ary = list.toArray(new String[0]);
第3个回答  2015-09-23

数组长度是定义的时候确定的,你要是 想用可以变化长度的数组,可以考虑

new List<String>

第4个回答  2012-03-13
既然你有这种长度可变的需求,为毛一定要用数组呢?
vector啊,list啊,set啊都可以满足你的需求嘛。
数组本身也是一个对象,这个对象的length是flnal的,也就是说创建之后不能改了。
相似回答