java中的数据类型
1.基本数据类型
byte short int long float double boolean char
2.复合数据类型【引用数据类型】
数组 类 接口
1.什么是数组?
相同数据类型的数据值,按照顺序,组成的复合数据类型
2.如何定义一个一维数组?
格式:数据类型 数组名称[];
数据类型 []数组名称;
例如:int intarray1[];
char []chararray1;
“[]”数组的标志。
3.如何创建一个一维数组?
创建数组就是指定数组的存储单元的个数。
创建数组是在定义数组之后。
格式:数组名称 = new 数据类型[存储单元的个数];
例如:intarray1 = new int[4];
chararray1 = new char[5];
4.如何为一维数组赋值?
为数组赋值其实就是将具体的数值保存在数组的指定位置上。
1.逐个赋值--按照指定位置将具体的数值保存在数组中。
格式:数组名称[指定位置] = 具体的数值;
指定位置就是我们常说的下标,从0开始数。
数组中的第一个数据存储单元,对应的下标是0;
数组中的第二个数据存储单元,对应的下标是1;
......
注意: 1.被保存在数组中数据值,要与数组的数据类型匹配。
2.被保存在数组中数据值个数,不能超过创建数组时指定的存储单元的个数。
例如:
//intarray1[0]=123.5;
intarray1[0]=123;
intarray1[1]=345;
intarray1[2]=567;
intarray1[3]=789;
//java.lang.ArrayIndexOutOfBoundsException: 4
//intarray1[4]=999;
2.直接赋值--定义数组创建数组,为数据中保存数据值,一句话完成
一句话 = 定义数组 + 创建数组 +保存数据值;
格式1: 数据类型 数组名称[]=new 数据类型[]{数据值1,数据值2,...数据值n}
数据类型 []数组名称=new 数据类型[]{数据值1,数据值2,...数据值n}
注意:被保存在数据中数据值,要与数组的数据类型匹配。
原本需要设置数组存储单元的个数的地方,现在一定不能设置了
例如:
char chatarray4[]=new char[]{'H','E','L','L','O'};
char []chatarray5=new char[]{'H','E','L','L','O'};
格式2: 数据类型 数组名称[]={数据值1,数据值2,...数据值n}
数据类型 []数组名称={数据值1,数据值2,...数据值n}
注意:被保存在数据中数据值,要与数组的数据类型匹配。
例如:
char chatarray2[]={'A','B','C'};
char []chatarray3={'H','E','L','L','O'};
5.如何从一维数组中取值?
根据数据在数组中的位置来将数据值取出。
数据在数组中的位置--下标,从0开始
格式:数组名称[下标];
例如:System.out.println(chatarray3[4]);
如果我们需要将数组中的所有值逐个取出,怎么弄?
将数组中的所有值逐个取出---遍历数组
循环修改数组的下标值。
例如:
//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);
6.一维数组的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);
7.增强的 for 循环遍历一维数组
格式: for(数组的数据类型 保存从数组中取出的数据值变量:需要被遍历的数组名称){
使用取出的数据值变量
}
例如:
for(char value:chatarray3){
System.out.println("增强的 for 循环===="+value);
}
8.数组的内存结构
9.如何定义一个二维数组?
格式:数据类型 数组名称[][];
数据类型 [][]数组名称;
例如: char chararr1[][];
10.如何创建一个二维数组?
二维数组就相当于一个表格,表格有行和列组成
格式:数组名称 =new 数据类型[行数][行中的列数];
例如:chararr1=new char[2][5];
11.如何为二维数组赋值?
1.逐个赋值--将相当于给表格中的每一个单元格赋值
格式:chararr1[行下标][列下标] = 具体数据值;
例如: chararr1[0][0]='H';
chararr1[0][1]='E';
chararr1[1][0]='W';
chararr1[1][1]='O';
2.直接赋值--定义+创建+赋值
格式1: 数据类型 数组名称[][]=new 数据类型[][]{{值1,值2},{值1,值2},...{}};
数据类型 [][]数组名称=new 数据类型[][]{{值1,值2},{值1,值2},...{}};
格式2: 数据类型 数组名称[][]={{值1,值2},{值1,值2},...{}};
数据类型 [][]数组名称={{值1,值2},{值1,值2},...{}};
例如:char char2[][]={{'A','B','C'},{'E','F','G'}};
12.如何从二维数组中取值?
格式: 数组名称[行下标][列下标];
例如: System.out.println(char2[1][0]); // E
13.循环遍历二维数组
使用循环的嵌套来遍历二维数组
例如:
//for循环遍历
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
System.out.pritnln(char2[i][j]);
}
}
14.二维数组的length属性--表示的是行数
例如: System.out.println((char2.length);//2
15.Arrays类
是一个数组的帮助类,里面提供了一组静态方法,来帮助我们灵活使用数组。
1.数组转字符串 Arrays.toString(array);
2.填充数组 Arrays.fill(array,数据值);
Arrays.fill(array, 开始位置,结束位置, 数据值); //部分填充
3.数组元素排序 Arrays.sort(array); 默认升序排列
Arrays.sort(array, 开始位置, 结束位置); //部分排序
4.数组复制 int[] arrayCopy = Arrays.copyOf(array, 3);