定义:数组是相同类型数据的有序集合。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。
4个特点:
- 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
- 其元素的类型必须是相同类型,不允许出现混合类型。
- 数组类型可以是任何数据类型,包括基本类型和引用类型
- 数组变量属于引用类型,数组也是对象,数组中的元素相当于对象的属性
创建数组和初始化
数组的声明方式:
方式一(推荐,更清晰):
type[] arr_name
int[] numbers // 示例
方式二:
type arr_name[]
注意:
- 声明的时候并没有实例化对象,只有在实例化数组对象时,JVM才会分配空间,这是才与长度有关;
- 声明数组的时候,并没有数组被创建
- 构建一个数组,必须指定其长度
创建数组的方式
- 使用new关键字 指定长度(最标准的方法,先声明,再用new分配内存空间)
语法:
arrayName = new dataType[arrayLength];
示例:
1. 先声明,再创建
int[] numbers; // 先声明
numbers = new int[5]; // 创建长度为5的int数组,默认都是0;[0,0,0,0,0]
2. 直接创建
String[] names = new String[3]; // 创建长度为3的String数组,默认值全为null [null,null,null]
double[] prices = new double[10]; // 创建长度为10的double数组,默认值全为0.0
- 使用new关键字,并直接初始化
如果你在创建数组时就已经知道所有元素的值,可以使用这种方式
dataType[] = new dataType[]{el1, el2...}
int[] nums = new int[]{1, 2, 3};
String[] names = new String[]{"liming", "lili"};
// 注意:此时不能在中括号里指定长度
double[] scores = new double[3]{1.2, 3.2}; // 编译报错
System.out.println(Arrays.toString(nums)); // [1,2,3]
System.out.println(Arrays.toString(names)); // [liming, lili]
- 简化初始化写法(最简洁)
dataType[] arrayName = {element1, element2, ..., elementN};
int[] nums = {1, 2, 3};
String[] names = {"liming", "lili"};
double[] scores = {1.2, 3.2}; // 注意:此时不能在中括号里指定长度
System.out.println(Arrays.toString(nums));// [1,2,3]
System.out.println(Arrays.toString(names));// [liming, lili]
System.out.println(Arrays.toString(scores)); // [1.2, 3.2]
// 注意这种简写不可以直接赋值
nums = {3,4,5} // 编译报错
nums = new int[]{3,4,5} // 这样重新赋值才行
- 动态创建后逐一赋值
先创建指定长度的空数组,然后通过索引为每个位置赋值
int[] nums = new int[2];
nums[0] = 1;
nums[1] = 2;
System.out.println(Arrays.toString(nums));