目录
数组
数组是一种容器,可以用来存储同种数据类型的多个值
数组容器存储数据时,应结合隐式转换(绿色正确 红色错误)
- 例如: int类型的数组容器(boolean byte short int double)
- 再例如: double类型的数组容器(byte short int long float double)
- 建议: 容器的类型,和存储的数据要保持一致
数组的定义
格式一 : 数据类型 [ ] 数组名
范例 : int [ ] array
格式二 : 数据类型 数组名 [ ]
范例 : int array [ ]
数组的静态初始化
初始化: 就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程
完整格式: 数据类型 [ ] 数组名 = new 数据类型 [ ] {元素1,元素2,元素3...};
范例:
int [] array = new int [] {1,2,3};
简写格式: 数据类型 [ ] 数组名 = {元素1,元素2,元素3...};
范例:
double [] array = {1.1,2.2,3.3};
数组的地址值
double [] arr = {1,2,3,4,5};
System.out.prinln(arr); //[D@6156e36c
sout打印出来的是数组在容器中的地址值
- [ : 表示当前是一个数组
- D : 表示当前数组里面的元素都是double类型的
- @ : 表示一个间隔符号
- 6156e36c : 才是数组真正的地址值(十六进制)
数组的动态初始化
动态初始化 : 初始化时只指定数组长度,由系统为数组分配初始值
格式 : 数据类型 [ ] 数组名 = new 数据类型 [数组长度] ;
范例 : 创建一个长度为五的动态数组
int [] arr = new int [5];
由系统给出的默认初始值 :
- 整数类型 : 默认初始值为0
- 小数类型 : 默认初始值为0.0
- 字符类型 : 默认初始值为'/u0000' 空格
- 布尔类型 : 默认初始值为false
- 引用数据类型 : 默认初始值 null
数组元素访问
数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 array.length-1
实例 :
public class TestArray {
public static void main(String[] args) {
// 数组大小
int size = 10;
// 定义数组
double[] myList = new double[size];
myList[0] = 5.6;
myList[1] = 4.5;
myList[2] = 3.3;
myList[3] = 13.2;
myList[4] = 4.0;
myList[5] = 34.33;
myList[6] = 34.0;
myList[7] = 45.45;
myList[8] = 99.993;
myList[9] = 11123;
// 计算所有元素的总和
double total = 0;
for (int i = 0; i < size; i++) {
total += myList[i];
}
System.out.println("总和为: " + total);
}
}
实例的输出结果为 :
总和为 : 11367.373
myList 数组里有 10 个 double 元素,它的下标从 0 到 9
总结:
数组动态初始化和静态初始化的区别 :
- 动态初始化手动指定长度,由系统给出默认初始化值
- 静态初始化手动指定数组元素,系统会根据元素个数,计算出数组的长度
什么时候该用动态,什么时候该用静态呢?
- 只明确元素个数,不明确具体数值,使用动态初始化
- 需求中已经明确了要操作的具体数据,直接静态化即可