数组详解:从创建到遍历的终极指南

什么是数组

数组:可以看成是相同类型元素的⼀个集合。在内存中是⼀段连续的空间。⽐如现实中的⻋库

数组的创建及初始化

数组的创建

T[ ]数组名=newT[N];

T:表⽰数组中存放元素的类型
T[ ]:表⽰数组的类型
N:表⽰数组的⻓度

数组的初始化
数组的初始化主要分为动态初始化以及静态初始化。
1.动态初始化:在创建数组时,直接指定数组中元素的个数
int[ ] array =newint[10];
2.静态初始化:在创建数组时不直接指定数据元素个数,⽽直接将具体的数据内容进⾏指定
语法格式:T[]数组名称= {data1, data2, data3, ..., datan};
【注意事项】
1.静态初始化虽然没有指定数组的⻓度,编译器在编译时会根据{}中元素个数来确定数组的⻓度。
2.静态初始化时, {}中数据类型必须与[]前数据类型⼀致。
3.静态初始化可以简写,省去后⾯的new T[]。
如果没有对数组进⾏初始化,数组中元素有其默认值
如果数组中存储元素类型为基类类型,默认值为基类类型对应的默认值,⽐如:
类型默认值
byte0
short0
int0
long0
float0.0f
double0
char/u0000((空字符,肉眼看不见,不是 '0' 也不是空格)
booleanFALSE
如果数组中存储元素类型为引⽤类型,默认值为null。
【注意】Java 中并没有约定 null 和 0 号地址的内存有任何关联

遍历数组(for-each)

全称:增强 for 循环,专门用来遍历数组、集合,语法简洁,不需要下标。
语法格式:
for(元素类型 变量名 :数组 / 集合){
//使用变量名
}
可以使⽤ for-each 遍历数组
for-each 是 for 循环的另外⼀种使⽤⽅式. 能够更⽅便的完成对数组的遍历. 可以避免循环条件和更新语句写错.
重点特性
1.只能读取元素,不能修改数组原有元素
2.没有下标索引,如果需要获取当前元素是第几个,不能用for-each,要用普通for循环。
3.使用场景:只需要从头到尾依次取出所有元素,不需要下标。
for 循环 vs for-each 对比

数组转字符串

使⽤这个⽅法后续打印数组就更⽅便⼀些.
Java 中提供了java.util.Arrays包, 其中包含了⼀些操作数组的常⽤⽅法.

⼆维数组

普通的⼆维数组
⼆维数组本质上也就是⼀维数组, 只不过每个元素⼜是⼀个⼀维数组.
基本语法
数据类型[ ][ ]数组名称=new数据类型[⾏数][列数] {初始化数据 };(⾏不可以省略,列可以省略)
1.⼆维数组是特殊的⼀维数组,⼀维数组的每个元素⼜是⼀个数组
2.arr.length 代表⼆维数组的⾏数
3.arr[row].length 代表⼆维数组的列数
不规则的⼆维数组
不规则的⼆维数组指的是,⼆维数组的列在定义的时候,没有确定。
上述⼆维数组就不是⼀个规则的⼆维数组。第1⾏有3列,第2⾏有5列。