活动地址:CSDN21天学习挑战赛
⚫ 数组就是用来存储一批同种类型数据的内存区域(可以理解成容器)。
静态初始化数组
⚫ 定义数组的时候直接给数组赋值。
// 完整格式 数据类型[] 数组名 = new 数据类型[]{元素1,元素2 ,元素3… };
- double[] scores = new double[]{89.9, 99.5, 59.5, 88.0};
-
- int[] ages = new int[]{12, 24, 36}
-
- // 简化格式
- 数据类型[] 数组名 = { 元素1,元素2 ,元素3,… };
- int[] ages = {12, 24, 36};
注意:数组变量名中存储的是数组在内存中的地址,数组是引用类型
1. 如何访问数组的元素?
数组名称[索引]
2. 如何访问数组的长度?
⚫ 数组名称.length
3. 数组的最大索引怎么获取?
数组名. length – 1 // 前提:元素个数大于
⚫ 数组一旦定义出来,程序执行的过程中,长度、类型就固定了。
⚫ 定义数组的时候只确定元素的类型和数组的长度,之后再存入具体数据。
数组的动态初始化格式:
- 数据类型[] 数组名 = new 数据类型[长度];
- int[] arr = new int[3];
-
- // 后赋值
- arr[0] = 10;
- System.out.println(arr[0]); // 10
两种数组定义时的特点和场景有什么区别
⚫ 当前已经知道存入的元素值,用静态初始化。
⚫ 当前还不清楚要存入哪些数据,用动态初始化
动态初始化数组后元素的默认值是什么样的?
⚫ byte、short、int 、char、long类型数组元素的默认值都是0
⚫ float、double类型数组元素的默认值都是0.0
⚫ boolean类型数组元素的默认值是false、String类型数组元素的默认值是null
1. 什么是遍历?
⚫ 一个一个的把数据访问一遍
2. 如何遍历数组?
- int[] ages = {20, 30, 40, 50};
- for (int i = 0; i < ages.length; i++) {
- System.out.println(ages[i]);
- }
数组元素求最大值如何实现的?
① 数据拿到程序中去,用数组装起来。
② 定义一个变量用于记录最大值,这个变量建议默认存储第一个元素值作为参照。
③ 遍历数组的元素,如果该元素大于变量存储的元素,则替换变量存储的值为该元素。
④ 循环结束后输出最大值变量即可
数组排序
⚫ 就是对数组中的元素,进行升序(由小到大)或者降序(由大到小)的操作。 数组排序的技术 ⚫ 冒泡排序
⚫ 选择排序
⚫ 快速排序
⚫ 插入排序
⚫ ...
数组搜索相关的技术
⚫ 二分搜索
⚫ 分块查找
⚫ 哈希表查找
⚫ ...
1. 冒泡排序的思想
⚫ 从头开始两两比较,把较大的元素与较小的元素进行交换
⚫ 每轮把当前最大的一个元素存入到数组当前的末尾
2. 冒泡排序的实现步骤。
⚫ 定义一个外部循环控制总共需要冒几轮(数组的长度-1)
⚫ 定义一个内部循环,控制每轮依次往后比较几个位置(数组长度-i-1)。
⚫ 如果当前位置的元素值>后一个位置的元素值,两者交换


