数组
可以把数组理解为是一个容器,用来存储一批同种类型的数据。
定义方式如下:
// 定义一个数组
int[] nums = {10, 20, 30, 40};
String[] names = {"张三", "李四"};
一般来说,开发者会用数组存储一系列相关的值。
静态初始化数组
示例:
// 静态初始化数组-完整写法
String[] names = new String[]{"zs", "root", "ls"};
int[] nums = new int[]{10,20,30};
double[] scores = new double[]{55.9, 99.5, 60.0};
boolean[] status = new boolean[]{true, false};
// 简化写法
int[] ages = {10,20,30};
String[] list = {"zs", "ls"};
注意:
- “数据类型[] 数组名” 也可以写成”数据类型 数组名[]”。这种写法在java中并不推荐。
- 什么类型的数组只能存放什么类型的数据。
数组在内存中的基本原理
当在代码中直接打印一个数组的时候,就会得到数组在内存中的地址,例如:
int[] nums = {10, 20, 30};
System.out.println(nums); // [I@10f87f48
打印出的[I@10f87f48
结果是java对数组内存地址的一个描述,[
表示是一个数组,I
表示int类型,@
表示这个数组在哪个地址,10f89f48
就是具体的地址,使用十六进制表示。
注意:数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型。
数组元素访问
例如:
int[] nums = {10, 20, 30};
// 读取数组中的值
System.out.println(nums[0]); // 10
// 修改数组中的值
nums[0] = 20;
System.out.println(nums[0]); // 20
// 获取数组的长度
System.out.println(nums.length); // 3
// 获取数组的最大索引
System.out.println(nums[nums.length - 1]); // 30
遍历数组
可以通过for循环来遍历数组:
int[] nums = {10, 20, 30, 40};
for(int i=0;i
练习:
代码如下:
// 计算销售总和
int[] list = {16, 26, 36, 6, 100};
// 创建一个变量,用来存储综合
int sum = 0;
for(int i = 0;i
动态初始化数组
动态初始化数组元素默认值规则:
// 动态初始化数组
int[] nums = new int[3]; // []当中的数字3表示空数组的长度
System.out.println(Arrays.toString(nums)); // [0, 0, 0]
动态初始化数组的元素默认值:
// 动态初始化数组
int[] nums = new int[3]; // []当中的数字3表示空数组的长度
System.out.println(Arrays.toString(nums)); // [0, 0, 0]
float[] nums2 = new float[3];
System.out.println(Arrays.toString(nums2)); // [0.0, 0.0, 0.0]
boolean[] bool1 = new boolean[3];
System.out.println(Arrays.toString(bool1)); // [false, false, false]
String[] strs = new String[3];
System.out.println(Arrays.toString(strs)); // [null, null, null]
练习
代码如下:
// 计算评委的分数
// 1. 动态初始化数组
double[] scores = new double[6];
// 2. 创建一个实例化对象sc
Scanner sc = new Scanner(System.in);
// 创建一个变量存储分数
double sum = 0;
// 3. 循环遍历数组
for(int i = 0;i
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net