4.数组

首先强调,结合数组的内存结构形式,可以更好地理解数组的特点。

1.概念和特点

1.1 数组(Array)概念

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

1.2 特点

  • 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括 基本数据类型和引用数据类型。
  • 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是 这块连续空间的首地址
  • 数组的长度一旦确定,就不能修改
  • 我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。即查询快,增删慢

2.一维数组的六大掌握

2.1一维数组的声明和初始化

  • 动态初始化

int[ ] array= new int[3];

  • 静态初始化

int[ ] array= new int[ ]{200,100,0};

2.2如何调用数组指定位置的元素

索引

2.3如何获取数组长度

array.length属性

2.4如何遍历数组

for(int i=0; i<array.length; i++)

2.5数组元素的默认初始化值

整型默认0
浮点默认0.0
char默认0
布尔默认false

2.6数组的内存解析

  1. java内存简化结构

在这里插入图片描述
在这里插入图片描述

3.二维数组的六大掌握

首先理解多维数组的内存结构,以二维数组为例。数组的第一个特点是:

  • 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括 基本数据类型和引用数据类型。

因此,数组中可以存放数组,这也就是多维数组。
在这里插入图片描述

3.1二维数组的声明和初始化

1. 动态初始化方式一

int[ ][ ] array= new int[3][2];
按照常规理解是3行2列。然而,按照Java思维定义,array是一个二维数组,包含了3个一维数组,每个1维数组中有2个元素。

2. 动态初始化方式二

int[ ][ ] array= new int[3][ ];
array是一个二维数组,包含了3个一维数组,每个1维数组默认初始化为null。
注意:int[ ][ ] array= new int[][3 ];//非法
从内存角度理解,new int[3][ ]开辟了一块连续的空间,空间大小为3;而另一种则无法体现。

3. 动态初始化方式三

int[ ][ ] array= new int[ ][ ]{{200,100,0},{2,0},{9,0,1,6}};
Java多维数组不必是规则的矩阵。

3.2如何调用数组指定位置的元素

索引

3.3如何获取数组长度

array.length属性,返回的是外层有多少个一维数组,而内层数组的个数不固定。
如int[ ][ ] array= new int[ ][ ]{{200,100,0},{2,0},{9,0,1,6}};
array.length 值为3;

3.4如何遍历数组

1for(int i=0;i<array.length;i++){ 2 for(int j=0;j<array[i].length;j++) 3 System.out.println(array[i][j]); 4} 5 6

3.5数组元素的默认初始化值

3.6数组的内存解析

代码交流 2021