一、java中的数组
java中的数据类型
1.基本数据类型
byte short int long float double boolean char
2.复合数据类型【引用数据类型】
数组 类 接口
二、如何定义一个一维数组?
格式: 数据类型 数组名称[];
数据类型 []数组名称;
例如: 一维: int intarray1[];
char []chararray1;
二维: int intarray[][];
char chararray[][];
三、如何创建一个一维数组?
创建数组就是指定数组的存储单元的个数。
创建数组是在定义数组之后。
格式:数组名称 = new 数据类型[存储单元的个数];
例如:一维: intarray1 = new int[4];
chararray1 = new char[5];
二维: intarray = new int[2][3]; // 表示两行三列
四、如何为一维数组赋值?
为数组赋值其实就是将具体的数值保存在数组的指定位置上。
1.逐个赋值--按照指定位置将具体的数值保存在数组中。
格式:数组名称[指定位置] = 具体的数值;
指定位置就是我们常说的下标,从0开始数。
数组中的第一个数据存储单元,对应的下标是0;
数组中的第二个数据存储单元,对应的下标是1;例:intarray1[0]=123;
注意:1.被保存在数组中数据值,要与数组的数据类型匹配。
2.被保存在数组中数据值个数,不能超过创建数组时指定的存储单元的个数。
2.直接赋值--定义数组创建数组,为数据中保存数据值,一句话完成
一句话 = 定义数组 + 创建数组 +保存数据值;
格式1: 数据类型 数组名称[]=new 数据类型[]{数据值1,数据值2,...数据值n}
数据类型 []数组名称=new 数据类型[]{数据值1,数据值2,...数据值n}----------一维
数据类型 数组名称[][] = new 数据类型[][]{{数值1,数值2},{数值1,数值2},.....} -----------二维
数据类型 [][]数组名称 = new 数据类型[][]{{数值1,数值2},{数值1,数值2},.....} -----------二维
注意: 被保存在数据中数据值,要与数组的数据类型匹配。
原本需要设置数组存储单元的个数的地方,现在一定不能设置了
例如: char chatarray4[]=new char[]{'H','E','L','L','O'};
格式2: 数据类型 数组名称[]={数据值1,数据值2,...数据值n}
数据类型 []数组名称={数据值1,数据值2,...数据值n} --------一维
数据类型 数组名称[][] = {{数值1,数值2},{数值1,数值2},.....} -----------二维
数据类型 [][]数组名称 = {{数值1,数值2},{数值1,数值2},.....} -----------二维
注意: 被保存在数据中数据值,要与数组的数据类型匹配。
例如: char chatarray2[]={'A','B','C'};
五、如何从数组中取值?
将数组中的所有值逐个取出---遍历数组
//for循环遍历一维数组
for(int i=0;i<5;i++){
System.out.println("for循环遍历数组--"+chatarray3[i]);
}
//while循环遍历数组
int j=0;
while(j<5){
System.out.println("while循环遍历数组--"+chatarray3[j]);
j++;
}
//do{}while()循环
int k=0;
do{
System.out.println("do{}while循环遍历数组--"+chatarray3[k]);
k++;
}while(k<5);
六、一维数组的length属性
1.先定义,后创建,接着再赋值构建起来的数组,那么这种方式构建的数组的length属性,表示的是创建数组时,指定的数组存储单元的个数
例如:
char chararr1[]; //定义数组
chararr1=new char[5];//创建数组
chararr1[0]='A';
chararr1[1]='B';
//保存在chararr1中的元素个数是---2
//chararr1中指定的存储单元个数是---5
System.out.println("length==="+chararr1.length);
2.通过直接赋值构建起来的数组,那么它的length属性,表示的是存储在数组中的元素个数。
例如:
char chararr2[]={'A','B','C'};
//保存在chararr2中的元素个数是---3
//chararr2中指定的存储单元个数是---3
System.out.println("length==="+chararr2.length);
因为有了数组的length属性,所以我们在遍历数组的时候,就不需要自己手动去数数组中元素的个数。
例如:
//for循环遍历数组
for(int i=0;i<chatarray3.length;i++){
System.out.println("for循环遍历数组--"+chatarray3[i]);
}
//while循环遍历数组
int j=0;
while(j<chatarray3.length){
System.out.println("while循环遍历数组--"+chatarray3[j]);
j++;
}
//do{}while()循环
int k=0;
do{
System.out.println("do{}while循环遍历数组--"+chatarray3[k]);
k++;
}while(k<chatarray3.length);
七、增强的 for 循环遍历一维数组
格式:
for(数组的数据类型 保存从数组中取出的数据值变量:需要被遍历的数组名称){
使用取出的数据值变量
}
例如:
for(char value:chatarray3){
System.out.println("增强的 for 循环===="+value);
}
八、循环遍历二维数组
使用循环的嵌套来遍历二维数组
例如:
//for循环遍历
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
System.out.pritnln(char2[i][j]);
}
}
注:二维数组的length属性--表示的是行数
例如: System.out.println((char2.length);//2
九、Arrays类
是一个数组的帮助类,里面提供了一组静态方法,来帮助我们灵活使用数组。
Arrays类属于java.util程序包中的一个java类
如果要使用Arrays这个java类就需要导入java.util程序包到当前程序中
在当前java代码的第一行“import java.util.Arrays;”
1.数组转字符串 Arrays.toString(array);
int arr1[] = {21333,13,3443,2389,25};
System.out.println(Arrays.toString(arr1));
2.填充数组 Arrays.fill(array,数据值);
float arr2[] = new float[4];
Arrays.fill(arr2,783.5f);// 结果----783.5,783.5,783.5,783.5
Arrays.fill(array, 开始位置,结束位置, 数据值); //部分填充
Arrays.fill(arr2, 1,4, 65.4f);//不包含结束位置,结果--------0,65.4,65.4,65.4
3.数组元素排序 Arrays.sort(array); 默认升序排列
Arrays.sort(arr1);//默认升序排列
System.out.println(Arrays.toString(arr1));
Arrays.sort(array, 开始位置, 结束位置); //部分排序
Arrays.sort(arr1, 1,arr1.length);//Arrays.sort(array, 开始位置, 结束位置); 部分排序,不包含结束位置
System.out.println(Arrays.toString(arr1));
4.数组复制 int[] arrayCopy = Arrays.copyOf(array, 3);
如果目标数组的长度大于原始数组的长度,多出的部分将会用默认值填充。对于基本数据类型的数组,默认值为零。对于引用类型的数组,默认值为null。
char arr3[] = {'我','很','开','心'};
char arr4[] = Arrays.copyOf(arr3, 3);
int arr5[] = Arrays.copyOf(arr1,6);
for(char i :arr4){
System.out.print(i+"\t");
}
System.out.println();
for(int i:arr5){
System.out.print(i+"\t");
}