数组定义及创建数组

50 阅读2分钟

定义:数组是相同类型数据的有序集合。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。

4个特点:

  1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
  2. 其元素的类型必须是相同类型,不允许出现混合类型。
  3. 数组类型可以是任何数据类型,包括基本类型和引用类型
  4. 数组变量属于引用类型,数组也是对象,数组中的元素相当于对象的属性

创建数组和初始化

数组的声明方式:

方式一(推荐,更清晰):

type[] arr_name
int[] numbers // 示例

方式二:

type arr_name[]

注意:

  1. 声明的时候并没有实例化对象,只有在实例化数组对象时,JVM才会分配空间,这是才与长度有关;
  2. 声明数组的时候,并没有数组被创建
  3. 构建一个数组,必须指定其长度

创建数组的方式

  1. 使用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
  1. 使用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]
  1. 简化初始化写法(最简洁)
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} // 这样重新赋值才行
  1. 动态创建后逐一赋值

先创建指定长度的空数组,然后通过索引为每个位置赋值

int[] nums = new int[2];
nums[0] = 1;
nums[1] = 2;
System.out.println(Arrays.toString(nums));