前言
本博客文章已收录至专栏Java SE,阅读其他有关博客笔记请转至该专栏下查阅
传送门 -->程序员雨空集_Java SE专栏
概念
指的是一种容器,可以同来存储同种数据类型的多个值
数组定义
格式 1:
数据类型 [] 数组名
比如:int [] array
格式 2:
数据类型 数组名 []
比如: int array []
数据类型:限定了数组以后能存什么类型的数据
方括号:表示现在定义的是一个数组
数组名:就是一个名字而已,方便以后使用
数组静态初始化
定义数组的同时就为数组的每个元素赋值(静态初始化,定死了,不能动)
格式 1:
new:给数组在内存中开辟了一个空间
类型 [] 数组名 = new 类型 [] {元素,元素,...};
int[] arr = new int[]{11,22,33};
格式 2(简化格式):
类型 [] 数组名 = {元素,元素,...};
int[] arr = {11,22,33};
注意:
- 等号前后的数据类型必须保持一致
- 数组一旦创建之后,长度不能发生变化
数组动态初始化
在定义数组时只指定数组长度,由系统自动为元素赋初值
格式:
数据类型[] 数组名 = new 数据类型[数组的长度];
定义一个数组,存3个人的年龄,年龄未知
int[] agesArr = new int[3];
数组的默认初始值:
整数类型:0
小数类型:0.0
布尔类型:false
字符类型:'\u0000',即一个空字符
引用类型:null
地址值与索引
地址值
int[] arr = {1,2,3,4,5};
System.out.println(arr);//[I@6d03e736
double[] arr2 = {1.1,2.2,3.3};
System.out.println(arr2);//[D@568db2f2
打印数组的时候,实际出现的是数组的地址值。
数组的地址值:就表示数组在内存中的位置。
以[I@6d03e736为例:
[ :表示现在打印的是一个数组。
I:表示现在打印的数组是int类型的。
@:仅仅是一个间隔符号而已。
6d03e736:就是数组在内存中真正的地址值。(十六进制的)
但是,我们习惯性会把[I@6d03e736这个整体称之为数组的地址值。
地址值对于我们来京,作用不大,简单了解即可
索引
也叫下标,数组的索引是用来访问数组中特定元素的位置
数组的索引从0开始,即第一个元素的索引为0,第二个元素的索引为1,依此类推+1
例如,如果有一个整数数组 int[] numbers = {10, 20, 30, 40, 50};
,我们可以使用索引来访问数组中的元素:
int firstNumber = numbers[0]; // 访问第一个元素,值为10
int secondNumber = numbers[1]; // 访问第二个元素,值为20
int thirdNumber = numbers[2]; // 访问第三个元素,值为30
在上述代码中,numbers[0]
表示数组 numbers
的第一个元素,即索引为0的元素。同样地,numbers[1]
表示数组的第二个元素,即索引为1的元素。
需要注意的是,数组的索引不能超出数组的范围,否则会导致数组越界异常。例如,如果数组长度为5,那么有效的索引范围是0到4。如果尝试访问索引为5的元素,将会抛出 ArrayIndexOutOfBoundsException
异常
此外,可以使用索引来修改数组中的元素的值。例如,numbers[0] = 100;
将数组的第一个元素的值修改为100
数组常见操作
数组元素访问
格式:
数组名[索引];
用法:
- 获取数组中对应索引上的值
- 修改数组中对应索引上的值一旦修改之后,原来的值就会被覆盖了
示例:
public class ArrayAccessExample {
public static void main(String[] args) {
int[] numbers = {10, 20, 30, 40, 50};
// 访问数组中的元素
int firstNumber = numbers[0];
System.out.println("第一个元素的值:" + firstNumber);
int thirdNumber = numbers[2];
System.out.println("第三个元素的值:" + thirdNumber);
// 修改数组中的元素
numbers[1] = 200;
System.out.println("修改后的第二个元素的值:" + numbers[1]);
numbers[3] = numbers[3] + 10;
System.out.println("修改后的第四个元素的值:" + numbers[3]);
}
}
创建了一个整数数组 numbers
,并初始化了一些初始值。然后,我们使用索引来访问数组中的元素,并将其打印出来。接着,我们修改了数组中的两个元素,分别将第二个元素的值修改为200,将第四个元素的值增加了10。最后,我们再次使用索引访问修改后的元素,并将其打印出来。
输出结果如下:
第一个元素的值:10
第三个元素的值:30
修改后的第二个元素的值:200
修改后的第四个元素的值:50
数组的遍历
遍历:数组里面所有的内容依次一个一个全部输出或者说出来
数组的长度:数组名.length;
示例:
for(int i = 0; i < arr.length; i++){
//在循环的过程中,i依次表示数组中的每一个索引
sout(arr[i]);
}
public class Main {
public static void main(String[] args) {
int [] aee = {1,2,3,4,5,6,7,8,9};
for (int i = 0; i < aee.length; i++) {
System.out.print(aee[i]);
}
}
}
二维数组
即数组的元素是一个数组,数组的数组,即为二维数组
定义方式 1:
动态初始化,行列个数已经确定,再后续对数组元素进行赋值修改
数据类型 [] [] 数组名 = new [行个数] [列个数];
int[][] matrix = new int[3][3];
matrix[0][0] = 1;
matrix[0][1] = 2;
定义方式 2:
使用静态初始化:
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
定义方式 3:
只定义行个数
数据类型 [] [] 数组名 = new 数据类型 [行个数] [];
int[][] matrix = new int[3][];
matrix[0] = new int[]{1, 2, 3};
matrix[1] = new int[]{4, 5};
matrix[2] = new int[]{6, 7, 8, 9};
多维数组
就是数组的数组的数组
定义、访问方法与一维、二维数组方法一样