一、数组的概念以及语法格式

(一)、数组的概念

1、数组:是相同类型元素的一个集合。数组在底层的存储空间是连续的。

  1. 所有的元素类型都是相同的。
  2. 存储空间都是连续的。
  3. 每个空间都有自己的编号-----数组的下标。

2、T[] array = new T[N];

  1. T:数字中存储元素的类型。
  2. T[]:表明array是数组类型的。
  3. array:数组名,按照小驼峰的方式来命名。
  4. new:用来申请数组空间的一个关键字,该关键字申请的空间都在堆上。
  5. N:是一个常量,表示数组当中的空间的个数----最多可以存储多少个元素。

二、数组的使用

(一)、定义

1、T[] array = new T[N];定义了一个数组,但是没有进行初始化,在Java中数组中每个元素都有其默认值

2、默认值

基本类型

引用类型

byte

0

null

short

0

int

0

long

0L

float

0.0f

double

0.0

char

'\u0000'

boolean

false

(二)、数组中元素访问

数组在内存中是一段连续的空间,空间的编号都是从0开始的,依次递减,改编号称为数字的下标,数组可以通过下标访问其任意位置的元素。

1、代码示例

int[]array = new int[]{10, 20, 30, 40,50};
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
System.out.println(array[4]); 
// 也可以通过[]对数组中的元素进行修改
array[0] = 100;
System.out.println(array[0]);

(2)、注意事项

(1)、数组是一段连续的内容空间,因此支持随机访问,即通过下标访问快速访问数组中任意位置的元素。

(2)、下标从0开始,介于[0, N)之间不包含N,N为元素个数,不能越界,否则会报出下标越界异常。

int[] array = {1, 2, 3};
System.out.println(array[3]); // 数组中只有3个元素,下标一次为:0 1 2,array[3]下标越界 

// 执行结果
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100 
           at Test.main(Test.java:4)

抛出了 java.lang.ArrayIndexOutOfBoundsException 异常. 使用数组一定要下标谨防越界。

(三)、遍历数组

所谓“遍历”是指将数组中的所有元素都访问一边,访问访问是指对数组中的元素进行某种操作,

1、遍历的方法

(1)、

int[]array = new int[]{10, 20, 30, 40, 50};
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
System.out.println(array[4]);

(2)、循环

int[]array = new int[]{10, 20, 30, 40, 50};
for(int i = 0; i < 5; i++){ 
    System.out.println(array[i]);
}

(3)、for-each

int[] array = {1, 2, 3};
for (int x : array) { 
     System.out.println(x);
}

2、通过数组对象.length来获取数组的长度

int[]array = new int[]{10, 20, 30, 40, 50};
for(int i = 0; i < array.length; i++){
     System.out.println(array[i]);
}

三、数组的初始化

数组的初始化主要分为动态初始化静态初始化

1、动态初始化:在创建数组时,直接指定数组中元素的个数

int[] array = new int[10];

2、静态初始化:在创建数组的时候不直接指定数据元素的个数,而直接将具体的数据内容进行指定

语法格式:T[] 数组名称 = {data1, data2, data3, ..., datan};

3、注意事项

  1. 静态初始化虽然没有指定数组的长度,编译器在编译时会根据{}中元素个数来确定数组的长度。
  2. 静态初始化时,{}中数据类型必须与[]前的数据类型一样。
  3. 静态初始化可以简写,省去后面的new T[].
  4. 数组可以按照c语言的数组格式来创建,但是一般不推荐。
  5. 如果不确定数组当中内容时,使用动态初始化,否则建议使用静态初始化。
  6. 静态和动态初始化也可以分为两步,但是省略格式不可以。
  7. 如果没有对数组进行初始化,数组中元素尤其默认值。
  1. 如果数组中存储元素类型为基类类型,默认值为基类类型对应的默认值,比如:int[] array = new int[5];数组中元素默认为0
  2. 如果数组中存储元素类型为引用类型,默认值为null