part4 Java数组
part4 Java数组
- 数组就是一个容器,用来存储同一批类型的数据
- 数组是一种引用数据类型
一、静态初始化数组(只确定元素内容)
♦静态初始化数组的格式
标准格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,元素4....};
int[] ages = new int[]{12,24,36};
简化写法:
数据类型[] 数组名 = {元素1,元素2,元素3......};
int[] ages = {12,24,36};
double[] scores2 = {89.9,99.5,59.5,88};
数组在内存中的原理:
- 数组变量名存储的是数组在内存中的地址
- 数组是一种引用数据类型
二、数组的访问
♦访问数组
数组名[索引]
arr[2] = 100;
♦数组的常用操作
输出整个数组为字符串:
Arrays.toString(数组名)
foreach方法输出整个数组
int[] abc = new int[]{1,2,3,4,5};
for(int a : abc) {
System.out.print(a + " ");
}
数组的长度属性:length
获取数组的长度,也就是数组元素的个数
int[] ages = new int[]{12,24,36};
System.out.println(ages.length);
数组的遍历(i<arr.length)
int[] ages1 = new int[]{11,22,33,44,55,66,77,88};
for (int i = 0;i < ages1.length;i++){
System.out.println(ages1[i]);
}
三、动态初始化数组(长度类型确定)
定义时不存入具体的元素值,只确定数组存储的数据类型和数组长度
数组的动态初始化格式:
数据类型[] 数组名 = new 数据类型[长度];
int[] arr = new int[3];
原理:
动态初始化数组的默认值:
四、数组的内存执行原理
直接输出数组名输出的是数组的地址信息
运行一个Java程序,主要看JVM中包含的以下区域:
- 方法区:放mian等入口
- 栈内存:放普通类型变量和执行程序
- 堆内存:放new的引用类型变量
- 多个变量可以指向同一个数组
- 如果一个数组变量存储的是null,那么这个变量将不再指向任何数组对象
五、数组案例
♦数组求最值:
思路:设一个max变量遍历数组与其比较,大于则替换max变量为数组值
♦数组反转:
思路:两个变量从数组两头走,当i<j时结束循环,前后变量置换
int[] arr2 = {5,6,7,8,9};
for (int i = 0 , j = arr2.length-1; i<j ; i++ , j--) {
int sum = 0;
sum = arr2[j];
arr2[j] = arr2[i];
arr2[i] = sum;
}
System.out.print(Arrays.toString(arr2));