注册 登录
编程论坛 JAVA论坛

为什么无法运行?谢谢

我要甜筒 发布于 2019-04-11 08:55, 2780 次点击
public class zero {
   
    public static void main(String[] args) {
        // TODO Auto-generated method stub
         int [] oldArr= {1,3,4,0,0,6,6,0,5,4,7,6,7,6,7,0,5};
            int [] newArr= {};
            int i,j=0,len,len1;
        len=oldArr.length;
        for(i=0;i<len;i++)
            if(oldArr[i]!=0)
            {
                    newArr[j]=oldArr[i];
                j++;
            }
        len1=newArr.length;
        for(i=0;i<len1;i++)
            System.out.println(" "+newArr[i]);

    }

}
只有本站会员才能查看附件,请 登录
5 回复
#2
林月儿2019-04-11 09:01
数组索引越界异常
#3
疯狂的小a2019-04-11 11:47
程序代码:
package com.xiaoa;

public class Zero {
    public static void main(String[] args) {
        // TODO 牛逼
        int[] oldArr = {1, 3, 4, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 6, 7, 0, 5};
        int[] newArr = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//        int[] newArr = {};
        
//TODO newArr需要初始化才可以使用
        int i, j = 0, len, len1;
        len = oldArr.length;
        for (i = 0; i < len; i++)
            if (oldArr[i] != 0) {
                newArr[j] = oldArr[i];
                j++;
            }
        len1 = newArr.length;
        for (i = 0; i < len1; i++)
            System.out.println(" " + newArr[i]);

    }
}
#4
rind2019-04-11 12:56
数组索引越界,
int[] newArr={};
newArr被初始化为{},长度为0.
而且在java中,数组的长度不会自动调整。
如果想要动态调整长度的特性、又能承受使用这一特性的成本的话,可以考虑使用ArrayList类。


#5
我要甜筒2019-04-11 16:40
回复 3楼 疯狂的小a
谢谢
#6
我要甜筒2019-04-11 16:41
回复 2楼 林月儿
谢谢!!!
1