Day-05 数组

Day-05 数组

一 . 数组的概述:

  • 数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理

  • 数组的常见概念

  • 数组名

    • 下标(或索引)
    • 元素
    • 数组的长度
  • 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括 基本数据类型和引用数据类型

  • 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是 这块连续空间的首地址

  • 数组的长度一旦确定,就不能修改

  • 我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快

  • 数组的分类:

  • 按照维度:一维数组、二维数组、多维数组(一般不用)

    • 按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对象数组)

二 . 一维数组的使用:

1 . 声明:

1type var[] 或 type[] var2 3
1int a[]; 2int[] a1; 3double b[]; 4String[] c; //引用类型变量数组 5 6

java中常用的声明方法为:type[] var

2 . 初始化:

  • 动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行,如下:

在这里插入图片描述

  • 静态初始化:在定义数组的同时就为数组元素分配空间并赋值,如下:

在这里插入图片描述

3 . 数组元素的引用:

  • 定义并用运算符new为之分配空间后,才可以引用数组中的每个元素

  • 数组元素的引用方式:数组名[数组元素下标]

  • 数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[5+i]

    • 数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 —>n-1;如int a[]=new int[3]; 可引用的数组元素为a[0]、a[1]、a[2]
  • 每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的长 度(元素个数)

  • 数组一旦初始化,其长度是不可变的

4 . 数组元素的默认初始化值
数组是引用类型,它的元素相当于类的成员变量,因此数组一经 分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。例如:

1int a[]= new int[5]; 2System.out.println(a[3]); //a[3]的默认值为0 3 4
  • 对于基本数据类型而言,默认初始化值各有不同
  • 对于引用数据类型而言,默认初始化值为null

5.数组元素的默认初始化值
在这里插入图片描述
6.创建数组

1int[] ages = new int[4]; 2ages[0] = 12; 3ages[1] = 23; 4ages[2] = 33; 5 6
1String[] names = new String[]{"赵宇","张恺","江运","曹林"}; 2names[1] = “刘昭”; 3names = new String[]{Tom,Jerry}; 4sysout(names[0]); 5 6

三 . 多维数组的使用

1.多维数组概述

对于二维数组的理解,我们可以看成是一维数组 array1又作为另一个一维数组array2的元素而存在

2.定义格式

格式1(动态初始化):int[][] arr = new int[3][2];

  • 定义了名称为arr的二维数组
  • 二维数组中有3个一维数组 每一个一维数组中有2个元素
  • 一维数组的名称分别为arr[0], arr[1], arr[2]
  • 给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;

格式2(动态初始化):int[][] arr = new int[3][];

  • 二维数组中有3个一维数组
  • 每个一维数组都是默认初始化值null (注意:区别于格式1)
  • 可以对这个三个一维数组分别进行初始化 arr[0] = new int[3]; arr[1] = new int[1]; arr[2] = new int[2];
  • int[][]arr = new int[][3]; //非法

格式3(静态初始化):int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

  • 定义一个名称为arr的二维数组,二维数组中有三个一维数组
  • 每一个一维数组中具体元素也都已初始化

第一个一维数组 arr[0] = {3,8,2};
第二个一维数组 arr[1] = {2,7};
第三个一维数组 arr[2] = {9,0,1,6};
第三个一维数组的长度表示方式:arr[2].length;

注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。

代码交流 2021