android开发中,定义数组,能不能不指定大小? 我输入int i[]; i[0]=1;编译不出错,运行出错。

我想请教一下,android开发中,定义数组,能不能不指定大小? 我输入int i[]; i[0]=1;编译不出错,运行出错。
最新回答
︸世态炎凉

2024-09-23 00:39:42

肯定是可以的,不过你这个描述有点问题,你是指的指定数组大小还是数组里面元素的大小?这两种都是可以的,不过数组的声明需要new一下,int[] i=new int[];
你表达的是指定里面第一个位置上的元素等于1,运行出错是报的什么错?LogCat里面的信息是什么?
追问
是这样的,我在定义数组的时候不想指定数组大小,因为数组的内容和长度要通过上位机指定,如果初始化太大就造成浪费。代码:
public int typeNum;
public String typeName [][];
……
typeNum=8;//假设获得typeNum的值
typeName=new String [typeNum][0];
for (int i=0;i<typeNum;i++)
{
typeName[i][0]="分类"+String.valueOf(i);
}
运行错误如图所示,public String typeName[][] =new String[20][1];就正常
追答
我试了一下,报的是数组越界的错误, 你的typeName=new String [typeNum][0]这一句有问题,你指定第二个值是0的话是不行的,它会有一个位置来存结束符,所以必须第二个值有一个长度,否则会越界
追问
嗯,是这样的,改成typeName=new String [typeNum][1];就好了。
其实也算是一个低级错误了,呵呵,脑子里面想着是定义一个二维数组,结果把
定义typeName=new String [typeNum][1];

赋值typeName[i][0]=****;搞混了
目前运行正常
谢谢
月影依风

2024-09-23 00:32:55

int[] i ;
i = new int[5] ;

java的数组应该如上定义 不像c语言的