![零基础Java学习笔记](https://wfqqreader-1252317822.image.myqcloud.com/cover/177/36710177/b_36710177.jpg)
2.4 数组
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_58.jpg?sign=1739273624-Erva4jr97KmvGnRDeU0QHIytSzd0JyGd-0-5ad355678df0dac3fe75572f8c6c19a2)
数组是一种最为常见的数据结构,可以保存一组相同数据类型的数据。数组一旦创建,它的长度就固定了。数组的类型可以为基本数据类型,也可以为引用数据类型;可以为一维数组、二维数组,也可以为多维数组。
2.4.1 声明数组
声明数组需要指定数组类型和数组标识符。
声明一维数组的方式如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_59.jpg?sign=1739273624-0Z5htt1oslvHzFtqfx9oZI9vaxHiiHdR-0-1decb10247cd71bef4ddfc14459a70a3)
上面两种声明数组格式的作用是相同的,但是前一种方式更符合原理,后一种方式更符合原始编程习惯。例如,分别声明一个int 型和boolean 型的一维数组,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_60.jpg?sign=1739273624-UB5fpDhdxccuKF2f5FTOKk3EFME0JRcN-0-66ee702ad9426162746b5c68fc6cd0aa)
Java 中的二维数组是一种特殊的一维数组,即数组的每个元素是一个一维数组,Java并不直接支接二维数组。
声明二维数组的方式如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_61.jpg?sign=1739273624-mJ6fa2Y4hXUx51dyDQmgcGVONSD0XWln-0-58ea3660293fc0c5a28842697fe42b24)
例如,分别声明一个int 型和boolean 型二维数组,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_62.jpg?sign=1739273624-nnNolVGbmBtS17F950DqKzkvEmwO83mi-0-def2aff14b541bafb42b5123d279bf49)
2.4.2 创建数组
创建数组实质上就是在内存中为数组分配相应的存储空间。
创建一维数组:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_63.jpg?sign=1739273624-iY2gi0UdH3FqxqrCLIO7S9AvaYBUd6WV-0-2b967b42941972572d69e72767e884fc)
创建二维数组:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_64.jpg?sign=1739273624-H4r6iQppO5BiwAONuTD2W2fOt4WVQJor-0-5e204a0ee8e2c8a628826db85d495ae8)
可以将二维数组看作一个表格,例如,可以将上面创建的数组days 看作如表2.4 所示的表格。
表2.4 二维数组内部结构表
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_65.jpg?sign=1739273624-ZgQRQmV3VDYvNaR8VzKXUf85XS5W8o0Y-0-ec5209345106f09d06749e75205a0cb6)
2.4.3 初始化数组
在声明数组的同时,可以给数组元素一个初始值,一维数组初始化如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_66.jpg?sign=1739273624-Axd7MigOmdjmZtdZrFzcPNEFNIaLoFsC-0-9fec2f54f1d53c9ca610bac8f9b866ec)
上述语句等价于:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_67.jpg?sign=1739273624-mnMfBWn6aaDoFBGX6FhQN3ORyfC1MJAZ-0-cc01c20f36e235127665ec4fe45ddd2d)
二维数组初始化如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_68.jpg?sign=1739273624-NNdO3sDwHNl0szqtpYINLO3tv0xjN0gf-0-0f9ddf1bc13bc1365e00f0da98b54021)
2.4.4 数组长度
数组的元素的个数称为数组的长度。对于一维数组,“数组名.length” 的值就是数组中元素的个数;对于二维数组,“数组名.length” 的值是它含有的一维数组的个数。例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_69.jpg?sign=1739273624-ynT5uSn8Dv9bIxPDqhSGD65PRItlzfPK-0-6a0f284c190eca1c15c68aaad9e5423b)
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_70.jpg?sign=1739273624-jKUNGgZSU5f4uz2iP0bfGFaUhH3T4lXj-0-4ba6673257b0499fbd99582db59cbff5)
如果需要获得一维数组的长度,可以通过下面的方式:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_71.jpg?sign=1739273624-4d4Esbo6hKa7e9UPcAEudnaVeQoNuJgk-0-dd90c781c8eac674abe075246441fb41)
如果是通过下面的方式获得的二维数组的长度,则得到的是二维数组的行数:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_72.jpg?sign=1739273624-GGDq3ESbRA9kuMTaMDzB7v0i1UInmgkZ-0-e1e08a46dc95e39335447d4a089ff7ab)
如果需要获得二维数组的列数,可以通过下面的方式:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_73.jpg?sign=1739273624-l1sBogKGBEO4IAmbAKtEy4UyhuR1GlaN-0-7aaf8ddf3dd51221eae68d6e54fa806c)
如果是通过 “{}” 创建的数组,则数组中每一行的列数可以不相同,例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_74.jpg?sign=1739273624-9G4E3oucAvpsrz4dRfirUjlCqDYDD0pH-0-e14b80e945c6091cfb95a24e10bb5d67)
在这种情况下,通过下面的方式得到的只是第一行拥有的列数:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_75.jpg?sign=1739273624-04BajF4RuubrJPOw15Jaui85dQeDHh2z-0-0e1538c840dcc12ca3251001bbf4e839)
如果需要获得二维数组中第二行和第三行拥有的列数,可以通过下面的方式:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_76.jpg?sign=1739273624-5X4gSPZXgm9fKs4JiUvwRVGl9K0d9TZv-0-9c03b984a88a32163f792b497f983e1c)
2.4.5 使用数组元素
一维数组通过索引符来访问自己的元素,如months[0],months[1] 等。需要注意的是,索引是从0 开始的,而不是从1 开始的。如果数组中有4 个元素,那么索引到3 为止。
在访问数组中的元素时,需要同时指定数组标识符和元素在数组中的索引。例如,访问上面代码中创建的数组,输出索引为2 的元素,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_77.jpg?sign=1739273624-2ueVj7RljWszHutuQBi5I7uyjbAlYU9J-0-e8f04347a5e76ff278eb54b0c27653d6)
二维数组也是通过索引符访问自己的元素的。在访问数组中的元素时,需要同时指定数组标识符和元素在数组中的索引,例如,访问2.4.2 节代码中创建的二维数组,输出位于第二行、第三列的元素,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt003_78.jpg?sign=1739273624-DJtaJcVCwF7gESgWuK9P7wr8IBv50ZBm-0-f367ead87f3b013f33c616ab678ba853)