撰写时间:2019年04月17日
数组对于所有编程语言来说都是重要的数据结构之一,是存储固定大小的同类型元素
数组具有相同类型的一组数组集合。数组又分为:一维数组,二维数组、多维数组。
必须声明数组变量,才能在程序中使用数组,声明数组的格式有两种:
数组定义(声明)
两种格式:
类型[] 数组名/类型 数组名[]
int [] arrayIntA;// 推荐使用
String arrayStringA[];//效果相同,但基本不使用这种方法
第二种方法也是对的,只是少用,别人这样写不能说人家的是错的
方法名:小驼峰命名法:首字母小写多个单词后面的首字母大写
首字母:以字母(A-z)、美元符(
)
、
下
划
线
(
)
首
字
符
之
后
:
可
以
是
字
母
(
A
−
z
)
,
美
元
符
(
)、下划线(_) 首字符之后:可以是字母(A-z),美元符(
)、下划线()首字符之后:可以是字母(A−z),美元符()、下划线(_)或数字的任何字符组
合
byte[] arrayByteA;
int [] arrayIntA;
long[] arrayLongA;
String[] arrayStringA;
String[] arrayStringB;
声明后还不能访问它的任何元素,这时候就要为它分配内存空间,且必须指明数组
的长度。
1、一维数组初始化:
静态初始化:
第一种:
arrayStringA=new String[]{"一","二","三","四","五","六","七"};
第二种:直接在声明时初始化
int[] arrayIntB=new int[]{1,2,3,4,5,6,7};
Or
int[] arrayIntB={1,2,3,4,5,6,7};
动态初始化:
数组名=new 类型[数组元素个数];
arrayStringB=new String [7];
或者 数组变量的声明和初始化用一条语句完成
int[] arrayByteC=new int[7];
怎么指定长度,怎么初始化根据自己的需要去做。
如果创建了一个数组,并指定了数组长度为7,它其实是有初始化值的了,int类型的
为0,数组元素[0,0,0,0,0,0,0],String类型为null,数组元素
[null,null,null,null,null,null,null]…
数组的知识化方式是:把数据放在大括号{}之内,中间用逗号隔开,系统自动为数
组分配一定的空间。
2、数组的引用
数组引用:使用索引(从0开始),注意数组大小
Java中通过下标(索引)来引用数组元素:arrayName[index];
可以通过下标来给指定的元素赋值:
arrayIntA=new int[3];
arrayIntA[0]=11;
arrayIntA[1]=22;
arrayIntA[2]=33;
取值:
System.out.println("arrayIntA的第一个元素是"+arrayIntA[0]);
System.out.println("arrayIntA的第二个元素是"+arrayIntA[1]);
System.out.println("arrayIntA的第三个元素是"+arrayIntA[2]);
3、数组的操作
一、遍历数组
在实际开发中,经常需要遍历数组获取每个元素通常遍历数组都是用for循环实现的。
遍历赋值:
String[] arrayStringC=new String[5];
for (int i = 0; i < arrayStringC.length; i++) {
arrayStringC[i]="C"+i;
}
遍历取值:
for (int i = 0; i < arrayStringC.length; i++) {
System.out.println("arrayStringC元素:"+arrayStringC[i]+"\t");
}
第二种遍历取值:
Java5 引入了一种主要用于数组的增强型for循环。但需要注意一点:Java增强型for
循环只能取值,不能赋值。foreach 这形式只能取值,不能赋值
for(String s:arrayStringC){
System.out.println("arrayStringC元素:"+s);
}
二、数组排序
int[]intarr={12,34,65,23,36,45,46};
System.out.print("排序前:");
for (int i = 0; i < intarr.length; i++) {
System.out.print(+intarr[i]+"、");
}
Arrays.sort(intarr);// 按字典顺序排序
System.out.println();
System.out.print("排序后:");
for (int i = 0; i < intarr.length; i++) {
System.out.print(+intarr[i]+"、");
}
4、二维数组
二维数组的声明、初始化和引用与一维数组相似,简单展示一下。
注意:Java语言中,把二维数组看作是数组的数组,数组空间不是连续分配的。所以 不
要求二维数组每一维的大小相同。
二维数组定义(声明)
int[][]arrayAA;
二维数组初始化
1、
arrayAA=new int[][]{{1,2},{3,4},{5,6}};
2、直接在声明时初始化
int[][]arrayBB={{7,8},{9,10},{11,12}};
or
int[][]arrayCC=new int[][]{{13,14},{15,16},{17,18}};
赋值
int[][] arrayDD=new int[2][2];
arrayDD[0][0]=0;
arrayDD[0][1]=1;
arrayDD[1][0]=2;
arrayDD[1][1]=3;
不指定长度的话可以是多位元素
int[][] arrayEE=new int[][]{{99},{88,77},{66,55,44},{33,22,11,00}};
int[][] arrayFF=new int[3][];
arrayFF[0]=new int[]{99};
arrayFF[1]=new int[]{44,22};
arrayFF[2]=new int[]{11,22,33};
二维数组需要嵌套循环提取
for (int i = 0; i < arrayFF.length; i++) {
int[] temp=arrayFF[i];
for (int j = 0; j < temp.length; j++) {
int k=temp[j];
System.out.println("arrayFF["+i+"]"+"["+j+"]="+k);
}
}