Java一维,二维数组的定义与简单使用

Java中一维,二维数组的简单使用

数组是具有相同数据类型的一组数据的集合,可以存储一定量的数据,在以后的集合里面也会涉及到数组的知识,所以再学习Java基础的时候,一定要学会如何去声明数组以及数组的简单使用。

一、创建一维数组:
使用new关键字进行内存分配,在使用数组之前,要先定义好数组变量的类型。

  1. 方式一:先声明,再new分配内存
		int[] arr1;//arr1和arr2两种声明方式都可以
        int arr2[];//声明了int类型的数组,数组的元素类型只能是int型的
     
        String[] arr3;
        char[] arr4;
        double[] aee5;
        float[] arr6;
        
        //为定义了的数组arr1分配内存,指定了arr1的长度为6
		arr1 = new int[6];
		//打印数组长度
		System.out.println(arr1.length);

  1. 方式二:声明数组和分配内同时进行
int[] arr1 = new int[6];//声明了int类型的数组,并指定内存大小为6
char[] arr2 = new char[10];

注意:指定了长度为6,但是数组的下表是从0开始的,里面元素的下表分别为:

a[0],a[1],a[2],a[3],a[4],a[5]

这六个,使用数组的时候要注意对下表的操作,避免发生下表越界或者空指针异常

二、一维数组的初始化

  1. 方式一:比较复杂
int[] arr1 = new int[]{1,2,3,4};
  1. 方式二:简单粗暴
int[] arr2 = {1,2,3,4};

三、一维数组的使用:

public class Test_01 {
    public static void main(String[] args) {
   		 //定义数组并赋值
        int[] arr = {1,2,0,23,43,45};
        //数组的遍历,arr.length可以获得数组的长度
        for (int i = 0; i < arr.length; i++) {
            System.out.println("arr[" + i + "]:" + arr[i]);
        }
    }
}

结果如下:
在这里插入图片描述
看完了一维数组的声明和使用,有没有发现和类的普通成员的定义有相似之处呢?这些知识点是必须要熟练掌握的哦,接下来我们看看二维数组吧:

四、二维数组的声明

  1. 方式一:先声明,再new分配内存(类比一维数组的创建)
		int[][] arr;
        arr = new int[3][4];
  1. 方式二:声明数组和分配内同时进行
		int[][] arr = new int[3][4];

五、二维数组的初始化(类比一维数组的初始化)

  1. 方式一:比较复杂
int[][] arr = new int[][]{{12,23,34},{45,56,67},{21,32,43},{76,65,54}};
  1. 方式二:简单粗暴
int[][] arr2 = {{12,23,34},{45,56,67},{21,32,43},{76,65,54}};

六、二维数组的使用:

//定义数组并赋值
int[][] arr = {{1,2,3},{2,3,4},{3,4,5}};
//数组的遍历,可以使用嵌套fro循环
for (int i = 0; i < arr.length; i++) {
   for (int j = 0; j < arr[i].length; j++) {
       System.out.print("arr["+i+"]["+j+"]="+arr[i][j]+"    ");
   }
   System.out.println("");//每次遍历完一行就换行;
}

运行结果在这里插入图片描述
七、使用数组的常见错误:

  1. 下表越界异常:
int[] arr = {1,2,3};//长度为3,只能操作arr[0],arr[1],arr[2]这三个元素
System.out.println(arr[3]);

//执行上面的代码会报以下错误
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
  1. 空指针异常
  • 这一段代码结果是null
public class Test_01 {
    public static void main(String[] args) {
    //定义了Person类型的数组,里面还未赋值
        Person[] arr = new Person[3];
        System.out.println(arr[2]);
    }
}
class Person{
    int age;
}
//运行结果是null

注意:因为定义了Person类型的数组,指定了长度,但并未初始化,里面的元素还没装载Person类型的对象,接下来的操作将发生空指针异常(仔细看区别,思考改如何改正):

  • 这一段是空指针异常
public class Test_01 {
    public static void main(String[] args) {
    //定义了Person类型的数组,里面还未赋值
        Person[] arr = new Person[3];
        System.out.println(arr[2].age);//元素还未存在,这样调用会报空指针异常
    }
}
class Person{
    int age;
}
//运行结果是:Exception in thread "main" java.lang.NullPointerException

学习Java基础的时候一定要多加总结,刚学的时候踩的坑越多,以后可以踩的坑才会越少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值