JAVA中数组那点事

109 篇文章 0 订阅
14 篇文章 1 订阅

在JAVA中,数组比起C中,要强大得多

1.不规则数组

如:int [][] arr= new int[3][];
即,在为多维数组分配内存时,只分配一维,其他维可以手动分配,这大大提高了数组的灵活性,在需要非常大而稀疏的数组时,不规则数组是个很好的选择

package Test;

public class Test {
    public static void main(String[] args) {
        int [][] arr= new int[3][];
        int k = 1;
        arr[0] = new int [5];
        arr[1] = new int [2];//看这里
        for (int i : arr[0]) {
            arr [0][i] = k++;
            System.out.print(arr [0][i]+" ");
        }
        System.out.println();
        for (int i : arr[1]) {
            arr [1][i] = k++;
            System.out.print(arr [1][i]+" ");
        }
    }
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
print:  
1 2 3 4 5 
6 7 

2.对数组的引用赋值

由于数组是是引用数据类型,是有对象组成,如果将一个数组赋给另一个数组,只是改变了变量的引用对象,并不会产生新对象。
如:

package Test;

public class Test {
    public static void main(String[] args) {
        int [][] arr= new int[3][];//创建一个数组arr
        int k = 1;
        arr[0] = new int [5];
        arr[1] = new int [2];
        for (int i : arr[0]) {
            arr [0][i] = k++;
            System.out.print(arr [0][i]+" ");//赋值 1 2 3 4 5
        }
        System.out.println();
        for (int i : arr[1]) {
            arr [1][i] = k++;
            System.out.print(arr [1][i]+" "); // 6 7
        }
        System.out.println();
        int [][] arr2= new int [3][];//创建数组arr2
        arr2[0] = new int [5];
        arr2[1] = new int [2];
        for (int i : arr2[0]) {
            arr2 [0][i] = k++;
            System.out.print(arr2 [0][i]+" ");// 8 9 10 11 12 
        }
        System.out.println();
        for (int i : arr2[1]) {
            arr2 [1][i] = k++;
            System.out.print(arr2 [1][i]+" ");// 13 14 
        }
        arr2 = arr;//看这里,把 arr 赋给arr2
        arr2 [1][0] = 10;//试图改变arr2 [1][0]
        System.out.println();
        System.out.println(arr[1][0]);// 打印 arr [1][0]
    }
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
print:  
arr:
1 2 3 4 5 
6 7 
arr2:
8 9 10 11 12 
13 14 
arr [1][0]:
10                 //这里改变了arr[1][0],但是arr[1][0]也改变了,证明arr2引用了arr,而arr2变成了垃圾空间

这里写图片描述

3.神秘成员length

由于数组成员实现为对象,每个数组都有一个实例变量length,它包括数组可以保存的个数。也就是说,实例变量length包括数组大小。 length大小不能被外部修改,用起来十分方便,在不规则数组中,遍历不同维数不同长度数组时,用length更是方便。

package Test;

public class Test {
    public static void main(String[] args) {
        int [] arr = {1,2,3,4};
        for (int i = 0; i < arr.length; i ++) {
            System.out.println("a["+i+"]-->"+arr[i]+" ");
        }
    }
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 print:
a[0]-->1 
a[1]-->2 
a[2]-->3 
a[3]-->4 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值