五、Java 数组
1. 数组的概述
>数组(Array),是多个相同类型数据按一定顺序排序的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理
>数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型
>数组的长度一旦确定,就不能修改
>数组是存储同一种数据类型多个元素的容器
>数组既可以存储基本数据类型,也可以存储引用数据类型
>数组的分类:
a.按照维度:一维数组、二维数组、三维数组、……
b.按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对象数组)
2.一维数组的使用
2.1 一维数组的声明方式:
type var[]或type[] var;
>格式1:数据类型 [] 数组名;
>格式2:数据类型 数组名 [];
例如:
int a [];
int[] a1;
double b[];
String[] c;//引用变量数组
Java 语言中声明数组时不能指定其长度(数组中元素的数),例如:int a[5];//非法
2.2 一维数组的使用:初始化
2.2.1 初始化的概述:
Java 中的数组必须先初始化,然后才能使用
初始化:就是为数组中的数组元素分配内存空间,并为,每个数组元素赋值
a.动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行
格式:数据类型 [] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数
b.静态初始化: 初始化时指定每个数组元素的初始值,由系统决定数组长度
格式:数据类型 [] 数组名 = {初始值1,……,初始值n};
如: int [] arr = {1,3,5,7,9};
2.3一维数组的使用:数组元素的引用
a. 定义并用运算符new为之分配空间后,才可以引用数组中的每个元素
b. 数组元素的引用方式:数组名[数组元素下标]
>数组元素下标可以是整型常量或整型表达式。如a[2],b[i],c[6*i]
>数组元素下标从0开始;长度为n的数组合法下标取值范围:0 ->n-1;
如 int a [] = new [3]; 可引用的数组元素为a[0],a[1] ,a[2]
c.每个数组都有一个属性length 指明它的长度,例如:a.length 指明数组 a 的长度(元素个数)
>数组一旦初始化,其长度是不可改变的
2.4 一维数组的使用:数组元素的默认初始化值
数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化.如:
public class ArrayTest{
public static void main(String args[]){
int [] arr = new int[5];
System.out.println(arr[3]);// arr[3]的默认值为0
}
}
>对于基本数据类型而言,默认初始化值各有不同
>对于引用数据类型而言,默认初始哈值为null(与0不同)
2.5 一维数组的使用 - 创建基本数据类型数组
>Java中使用关键字 new 来创建数组
>如下是创建基本数据类型元素的一维数组
public class Test{
public static void main(String args[]){
int [] s;
s = new int [10];
//遍历数组
for(x = 0;x<s.length;x++){
System.out.println(s[x]);
}
}
}
3.多维数组的使用
3.1 多维数组的概念
一维数组只有一个下标。具有两个或两个以上下标的数组,就称为多维数组。多维数组元素有多个下标,以标识它在数组中的位置。多维数组的说明与一维数组的说明基本类似,其说明的一般形式如下:
< 存储类型 >< 数据类型 >< 数组名 >< 常量表达式 1>< 常量表达式 2>…< 常量表达式 n>
3.2 多维数组的使用 - 二维数组
>二维数组[][]:数组中的数组
3.2.1 动态初始化
a.格式1(动态初始化): int [][] arr = new int [3][2];
>定义了名称为 arr 的二维数组
>二维数组中有3个一维数组
>每个一维数组中有2个元素
>一个一维数组的名称分别为arr[0],arr[1],arr[2]
b.格式2(动态初始化):int [][] arr = new int[3][];
>二维数组中有3个一维数组
每个一维数组都是默认初始化值null(注意:区别格式1)
>可以对这是三个一维数组分别进行初始化
arr[0] = new int [3]; arr[1] = new int[1] ; arr[2] = new int [2] ;
注: int [][] arr = new int [][2];//非法
3.2.2 静态初始化
格式 (静态初始化) : int [][] arr = new int{{3,2,1},{2,7},{9,0,1,6}};
>定义一个名称为 arr 的二维数组,二维数组中有三个一维数组
>每一个一维数组中的具体元素都已初始化
>第一个 一维数组 arr[0] = {3,2,1};
>第二个 一维数组 arr[1] = {2,7};
>第三个 一维数组 arr[2] = {9,0,1,6};
>第三个一维数组的长度表示方式 : arr[2].length;
注: 特殊写法情况: int [] x,y[];x是一维数组,y是二维数组。
Java 中多维数组不必都是规则矩形形式