数组:
数组就是第一个容器,用来存储同一批同种类型的数据。
例子:
有了变量,为什么还要数组?
结论:遇到批量数据存储和操作的时候,数组比变量更合适。
数组的定义和访问:
静态初始化数组:
定义数组的时候直接给数组赋值。
静态初始化数组的格式:
注意:
1)“数据类型[] 数组名” 也可写成 “数据类型 数组名[]”。
2)什么类型的数组只能存放什么类型的数据。
package cn.ensource.define;
public class ArrayDemo1 {
public static void main(String[] args) {
// 目标:掌握数组的定义方式:静态初始化数组
int[] ages = new int[]{12, 24, 36};
double[] scores = new double[]{89.9, 99.5, 59.5, 88};
// 简化写法
int[] ages2 = {12, 24, 36};
double[] scores2 = {89.9, 99.5, 59.5, 88};
// “数据类型[] 数组名” 可以写成 ”数据类型 数组名[]"
int ages3[] = {12, 24, 36};
double scores3[] = {89.9, 99.5, 59.5, 88};
// 什么类型的数组,只能放什么类型的数据
int[] ages4 = {12, 24, 36, "chang"}; // 报错
}
}
数组在计算机中的基本原理:
数组变量找到数组对象。
ages变量中保存的是数组对象的地址。
package cn.ensource.define;
public class ArrayDemo1 {
public static void main(String[] args) {
// 目标:掌握数组的定义方式:静态初始化数组
int[] ages = new int[]{12, 24, 36};
double[] scores = new double[]{89.9, 99.5, 59.5, 88};
System.out.println(ages); // 打印ages变量的地址
System.out.println(scores); // 打印scores变量的地址
}
}
运行结果:
注意:数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型。
数组的访问:
就是访问数组中的数据。
语法格式:
数组名称[索引]。
数组中的数据默认是有编号的,默认是从0开始,这个编号就是索引。
数组的长度属性:length
package cn.ensource.define;
public class ArrayDemo2 {
public static void main(String[] args) {
// 目标:掌握数组的访问
int[] arr = {12, 24, 36};
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
}
}
运行结果:
有一个索引越界的错误提示信息。
package cn.ensource.define;
public class ArrayDemo2 {
public static void main(String[] args) {
// 目标:掌握数组的访问
int[] arr = {12, 24, 36};
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
// System.out.println(arr[3]);
// 修改数组中的值
arr[0] = 66;
arr[2] = 100;
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
// 获取数组元素的个数
System.out.println("数组的长度: " + arr.length);
// 获取数组的最大索引
System.out.println("数组的最大索引:" + (arr.length - 1));
}
}
注意:数组的最大索引,有一个前提条件是数组中存在数据。
数组的遍历:
遍历:就是一个一个的访问容器中的数据。
为什么要遍历数组?
求和。
搜索某个数据。
找最大值和最小值。
使用循环来遍历:
package cn.ensource.define;
public class ArrayDemo3 {
public static void main(String[] args) {
// 目标:掌握数组的遍历
int[] ages = {12, 24, 36};
for(int i = 0; i < ages.length; i++) {
System.out.println(ages[i]);
}
}
}
案例训练:
需求:某部门5名员工的销售额分别是:16、26、36、6、100,请计算出他们部门的总的销售额。
package cn.ensource.define;
public class Sales {
public static void main(String[] args) {
// 案例:部门销售额
int[] sales = {16, 26, 36, 6, 100};
int sales_sum = 0; //部门销售额
for(int i = 0; i < sales.length; i++) {
sales_sum += sales[i];
}
System.out.println("部门销售额: " + sales_sum);
}
}
运行结果: