使用length成员

因为数组是作为兑现实现的,所以每个数组都包含有数组元素数量的实例变量length(换句话说,length包含了数组的大小).演示该属性的程序如下所示:
    public static void main(String args[])
    {
        int list[] = new int[10];
        int nums[] = {1,2,3};
        int table[][] = {
                {1,2,3},
                {4,5},
                {6,7,8,9}
        };
        
        System.out.println("length of list is  "+list.length);
        System.out.println("length of nums is  "+nums.length);
        System.out.println("length of table is  "+table.length);
        System.out.println("length of table[0]  is "+table[0].length);
        System.out.println("length of table[1]  is "+table[1].length);
        System.out.println("length of table[2]  is "+table[2].length);
        
        for(int i=0;i<list.length;i++)
        {
            list[i] = i * i;
        }
        
        System.out.println("Here is list:");
        for(int i=0;i<list.length;i++)
        {
            System.out.print(list[i]+",");
        }
    }
输出:
length of list is 10
length of nums is 3
length of table is 3
length of table[0] is 3
length of table[1] is 2
length of table[2] is 4
Here is list:
0,1,4,9,16,25,36,49,64,81,
请特别注意二维数组table使用length的方法,如上所述,二维数组是数组的数组.因此,应当使用如下表达式:
table.length
其中包含存储在table中的数组的数量,本例中为3.为获取table中每个数组的长度,需要使用下面这个表达式:
table[0].length
本例中,该表达式获取的是第一个数组的长度.
另一点需要注意的是,在LengthDemo中,for循环使用list.length来控制迭代发生的次数.因为每个数组都有自己的长度,所以可以使用这一信息,而无须手动跟踪数组的长度.切记,length的值与实际使用的元素的数量无关,其中包含的是数组可以存储的元素数量.
有了length成员后,就使特定类型的数组操作执行起来更简单,更安全,从而也就简化了许多算法.例如,下面的程序使用length把一个数组复制到另一个数组中,并且同时防止了数组溢出及其带来的运行时异常:
    public static void main(String args[])
    {
        int i;
        int nums1[] = new int[10];
        int nums2[] = new int[10];
        
        for(i=0;i<nums1.length;i++) nums1[i] =  i;
        
        if(nums2.length >= nums1.length)  for(i=0;i<nums1.length;i++) nums2[i] = nums1[i];
        else for(i=0;i<nums2.length;i++)  nums2[i] = nums1[i];
        
        for(i=0;i<nums2.length;i++)  System.out.println("nums2["+i+"] : "+nums2[i]);
    }
输出:
nums2[0] : 0
nums2[1] : 1
nums2[2] : 2
nums2[3] : 3
nums2[4] : 4
nums2[5] : 5
nums2[6] : 6
nums2[7] : 7
nums2[8] : 8
nums2[9] : 9
这里,length有助于两个重要功能的执行.第一,他确保目标数组的容量足以存储源数据.第二,他提供了执行复制的for循环的结束条件.当然,在这个简单的示例中,很容易就可以知道数组的大小,但是这种方法也可以应用更广泛,更具挑战的程序设计中.