-
数组
1. 定义
数组是指一组类型相同的数据的集合,数组中的每个数据被称为元素。每个数组可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致。
2. 特点
-
数组的元素类型一致
-
数组一旦初始化,容量(长度)不能改变,可以通过数组的length属性获取数组的长度,且length属性只读
-
数组的下标从0开始到length-1为止,如果超过范围则发生数组下标越界异常
-
数组存在在堆中,是一块连续的区域
-
数组名称指向数组的内存地址,可以通过数组名称[下标]的方式操作数组
3. 声明方法
-
数据类型[] 数组名 =null;
-
数据类型[] 数组名;
4. 初始化
-
直接赋值,数组的容量由值的个数决定,值的类型必须与数组的类型一致。数组名称={值,……};
int[] nums={23,45,2,1,8};
String[] names={"张三","admin"};
-
动态赋值
数组名=new 数据类型[数据长度];
关键词new称为内存分配符,在堆中分配空间
String str=new String("abcd");//一定放在堆中
String temp="abcd";//放在栈中的常量池中
String rst="abcd";//放在栈中的常量池中
boolean f=str==temp;//结果为false
boolean n=temp==rst;//true
int[] nums=new int[10];
String[] names=new String[5];
-
new时直接赋值
数组名称=new 数据类型[] {值,……}
注意:[]中不能指定长度,数组长度由后面的值的个数决定
int[] nums=new int[]{12,23,45};
//以下错误,[]中不能有值
int[] ages=new int[4]{12,23,45,56};
5. 数组的分类
-
一维数组:数列
数据类型[] 数组名称;
初始化
数组名称=new 数据类型[length];
-
多维数组:
数据类型 [] [] 数组名称;
数据类型 数组名称[] [];
数据类型[] 数组名称[];
初始化
数组名称=new 数据类型[row] [col];//规整数组
数组名称=new 数据类型[row] [];//不规整数组
数组名称={
{值,……},{值,……}};
二维数组的length属性返回的是二维数组的行数
-
二维数组:表格
-
int[][] nums=new int[5][4];
int r=nums.length;//5,表示数组的行数
int c=nums[0].length;//下标为0的列数
6. 数组的遍历
使用for循环,从0开始,直到length结束
- 一维数组
//从左往右
for(int i=0;i<数组名.length;i++){
类型 变量=数组名[i];
}
//逆序(从右往左)
for(int i=数组名.length-1;i>=0;i--){
类型 变量=数组名[i];
}
- 二维数组先行后列
//二维数组中数组名.length获取的行数
for(int i=0;i<数组名.length;i++){
//先获取i对应的行数据
int[] temp=数组名[i];
for(int j=0;j<temp.length;j++){
//数据类型 变量=temp[j];
数据类型 变量=数组名[i][j];
}
}