目录
数组的定义和访问
静态初始化数组
数组的访问
数组的遍历
案例练习
动态初始化数组
案例练习
数组是什么
例子:
20,10,80,60,90
int[ ] arr = {20,10,80,60,90};
牛二,西门,全蛋
String names = {"牛二","西门","全蛋"};
数组的应用让我们省去了大量的变量定义,使得代码更加简洁和逻辑清晰。
静态初始化数组即定义数组的时候直接给数组赋值。
静态初始化数组的格式:
完整格式:
数据类型 [] 数组名 = new 数据类型 [] {元素1,元素2,元素3,...};
int[] ages = new int[]{1,2,3,4,5}; double scores = new double[]{89.9,99.9,85.7};
简化格式:
数据类型[] 数组名 = {元素1,元素2,元素3,...};
int[] ages = {1,2,3,4,5};
注意:
数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型。
数组在计算机中的存储:
访问数组:数组名[索引]
取值
System.out.println(arr[0]); //12
赋值
arr[2] = 100;
System.out.println(arr[2]); //100
数组的长度属性:length
//获取数组的长度(就是数组元素的个数)
System.out.println(arr.length); //3
数组的最大索引:
System.out.println(arr.length - 1)
(前提是数组中要有元素)
1.如何访问数组的元素?
2.如何访问数组的长度?
3.数组的最大索引是多少?
4.如果访问数组时,使用的索引超过了数组最大索引会出什么问题?
什么是遍历?
为什么要遍历数组?
如何遍历?
int[] arges = {1,2,3,4,5};
for(int i = 0; i < arr.length; i++)
{
System.out.println(arr[i]);
}
需求:
- 某部门5名员工的销售额分别是:16、26、36、6、100,请计算出他们部门的总销售额。
int[] money ={16, 26, 36, 6, 100};
public static void main(String[] args)
{
//1.定义一个数组存储5名员工的销售额
int[] meney = {16,26,36,6,100};
//2.定义一个变量用于累加求和
int sum = 0;
//3.遍历这个数组
for(int i = 0; i < money.length; i++)
{
sum += meney[i];
}
System.out.println("员工的销售总额:" + sum);
}
动态初始化数组即定义数组时先不存入具体的元素值,只确定数组存储的数据类型和数组的长度。
动态初始化格式:
数据类型[] 数组名 = new 数据类型 [长度];
int[] arr = new int[3];
再进行赋值
arr[0] = 10; System.out.println(arr[0]); //10
注意:
静态初始化和动态初始化数组的写法是独立的,不可以混用。
数据类型 | 明细 | 默认值 |
---|---|---|
基本类型 | byte、short、char、in、long | 0 |
float、double | 0.0 | |
boolean | false | |
引用类型 | 类、接口、数组、String | null |
1、动态初始化数组的写法是什么样的?有什么特点?
数据类型[] 数组名 = new 数据类型[长度];
int[] ages = new int[4];
2.动态初始化数组后元素的默认值是什么样的?
3、两种数组定义的方法各自适合什么业务场景?
需求:
- 某歌唱比赛,需要开发一个系统:可以录入六名评委的打分,录入完毕后立即输出平均分做为选手得分。
double[] scores = new double[6];
import java.util.Scanner;
public class ArrayTest
{
public static void main(String[] args)
{
//1.定义一个动态初始化数组,存储六个评委的打分
double[] scores = new double[6];
Scanner sc = new Scanner(System.in);
int sum = 0;
//2.遍历数组,录入评委的分数,存入数组中
int i;
for(i = 0; i < scores.length; i++)
{
System.out.println("请您输入当前第" + (i + 1) + "个评委的分数:");
double score = sc.nextDouble();
scores[i] = score;
//对分数进行求和
sum += scores[i];
}
System.out.println("选手最终得分是:" + sum / scores.length);
}
}
END
学习自:黑马程序员——JavaSE课程