Java中的数组

数组:存储同一种数据类型的多个元素的容器。
定义格式:
1.数据类型[] 数组名;(推荐的定义格式)
2.数据类型 数组名[];
数组的初始化:

所谓的初始化,就是为数组开辟内存空间,并为数组中的每个元素赋予初始值。

有两种方式可以实习数组的初始化:

1.动态初始化:只给出长度,由系统给出初始化值。
2.静态初始化:给出初始化值,由系统决定长度。

动态初始化:数据类型[] 数组名=new 数据类型[数组长度];

比如:int[] arr=new int[5];
int 说明数组中的元素类型是int类型
[] 说明这是一个数组
arr:数组的名称
new:为数组申请内存分配,开辟空间
int:说明数组中的元素类型是int类型
[]:说明这是一个数组
5:数组的长度,也是元素的个数

数组的元素访问

如果直接输出数组名称,会打印出数组的地址值:

package md_arr;

public class arr {

    public static void main(String[] args) {
        int[] arr = new int[5];
        System.out.println(arr);

    }

}

输出结果:[I@7852e922
"[" 表示这是一个数组的地址值

要获取数组的元素的值,要通过索引获取:

package md_arr;

public class arr {

    public static void main(String[] args) {
        int[] arr = new int[5];
        System.out.println(arr[0]);

    }

}

输出结果:0
数组元素的默认值:
byte,short,int,long 默认值为0
float,double 默认值为0.0
char 默认值为'\u0000'
boolean 默认值为false
引用类型 默认值为null
数组的静态初始化:
格式
数据类型[] 数组名=new 数据类型[]{元素1,元素2....};
或者:数据类型[] 数组名={元素1,元素2....};

比如:
int[] arr={1,2,3,4,5};推荐使用这种初始化方式
数组的常见错误:

1.数组索引越界:

package md_arr;

public class arr {

    public static void main(String[] args) {
        int[] arr = {1,2,5,6,4};
        System.out.println(arr[5]);

    }

}
报错:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at md_arr.arr.main(arr.java:7)
因为访问了数组中没有该索引的元素
2.空指针异常
package md_arr;

public class arr {

    public static void main(String[] args) {
        int[] arr = {1,2,5,6,4};
        arr=null;
        System.out.println(arr[1]);

    }

}
报错:Exception in thread "main" java.lang.NullPointerException
at md_arr.arr.main(arr.java:8)
因为数组不再指向堆内存的数据了,所以无法访问数组的元素
数组的遍历:
package md_arr;

public class arr {

    public static void main(String[] args) {
        int[] arr = {1,2,5,6,4};
        System.out.print("[");
        for(int x=0;x<arr.length;x++) {
            if(x!=arr.length-1) {
                System.out.print(arr[x]+",");
            }
            else {
                System.out.println(arr[x]+"]");
            }
            
        }
    }

}
输出结果:[1,2,5,6,4]
二维数组:

二维数组其实就是元素为一维数组的数组。

定义格式:

1.数据类型[][] 数组名;(推荐的定义方式)
2.数据类型 数组名[][];
3.数据类型[] 数组名[];

初始化:

动态初始化:
数据类型[][] 数组名=new 数据类型[m][n];
m表示由多少个一维数组
n表示一维数组的元素个数

静态初始化:
数据类型[][] 数组名={{元素...},{元素...},{元素...}};
二维数组的地址值:
package md_arr;

public class arr {

    public static void main(String[] args) {
        int[][] arr = {{1,2,3,4},{5,1,2,4}};
        System.out.println(arr);
        System.out.println(arr[0]);
    }

}   
输出结果:[[I@7852e922  "[[" 表示这是二维数组的地值。
[I@4e25154f           表示一维数组的地址值
二维数组的遍历:
package md_arr;

public class arr {

    public static void main(String[] args) {
        int[][] arr = {{1,2,3,4},{5,1,2,4}};
        for(int x=0;x<arr.length;x++) {
            for(int y=0;y<arr[x].length;y++) {
                System.out.print(arr[x][y]);
            }
        }

    }

}
输出结果:12345124

转载于:https://www.cnblogs.com/hzdwwzz/p/10281769.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值