Java增强式for循环&数组是对象

int [][] cords= {
                {1,2,3,4},
                {5,6,7,8} 
                };//cords有两个索引cords.length=2
for(int i=0;i<cords.length;i++) {
            for(int j=0;j<cords[i].length;j++) {
                System.out.print(cords[i][j]);
            }
            System.out.println();
        }

数组使用一个索引存取数组元素,声明二维数组,二维数组使用两个索引存取数组元素。得知有几列cords.length。取得每列的长度cords[i].length
cords[i][j]指定列、行索引取得数组元素要声明二维数组。将二维数组看作矩阵会比较容易理解,由于有两个维度,必须先通过 cords. length得知有几列。对于每一列,再利用cords[i].length得知每列有几个元素目。由于在这个范例中,是用二维数组来记录i、j坐标的储存值i、j就相当于列、行( Column)索引,因此可使用ij来取得x、y坐标的储存值。
其实这个范例也是循环地走访二维数组,并没有真正要用索引做什么事。用增强式for循环来改写:

for(int[] row:cords) {
            for(int val:row) {
            System.out.print(val);
            }
            System.out.println();
        }

可以这样理解:新建一个int[] row数组将cords[][]里两个索引依次传给row[],之后将row[]数组里值依次给整型val。
因为没有制定行列所以,这么建立数组也是合法的:

int[][] cords={
   {1,2,3,4,5}{1,2,3}
};

!!!数组是对象 !!!

以上都是基本类型建立的数组,接下来介绍类类型建立的数组。首先看看如何用new关键词建立 Integer数组:

 Integer scores= new Integer3);

那么注意,上面这个程序片段建立了几个 Integer对象呢?注意,不是3个,是0个。如果是类类型,这个片段的写法建立的数组,每个索引都是参考至null,而基本类型创建的数组索引参考至默认值0。

Integer[] arr=new Integer[4];
        for(Integer row:arr) {
            System.out.println(row);
        }

执行结果为
null
null
null
null
传入值:

arr[0]=1;
arr[1]=2;
......

如果事先知道 Integer数组每个元素要放什么,可以如下:

 Integer[] scores =(new Integer1), new Integer2));

如果是JDK5以上,结合自动装箱来简化程序撰写:

 Integer [] scores =(99, 87, 66);

Integer[][] cords =new Integer[3][2];
new Integer[3][2]代表着一个 Integer类型的对象,其中有3个 integer[]类型的索引,分别参考至长度为2的 Integer一维数组对象,而每个 Integer一维数组的索引都参考至null,所以答案还是0个 integer实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值