1.二维数组:一个元素为一维数组的数组。
2.动态初始化方式一(指定有多少个长度相同的一维数组):
数据类型[][] 变量名=new 数据类型[m][n];
m表示这个二维数组有多少个一维数组
n表示每一个一维数组的元素个数
需求:请定义一个二维数组,二维数组有三个一维数组,每个一维数组有两个元素。
1.打印二维数组名称
2.打印每一个一维数组
3.不给元素赋值打印元素
4.赋值后打印元素
//定义一个二维数组,二维数组有三个一维数组,每个一维数组有两个元素
int[][] arr=new int[3][2];
//打印二维数组名称
System.out.println(arr); //[[I@7629b854
//打印每一个一维数组
System.out.println(arr[0]); //[I@2d04cf67
System.out.println(arr[1]); //[I@16cc8a48
System.out.println(arr[2]); //[I@4e8a88a9
//不给元素赋值打印元素
System.out.println(arr[0][1]); //0
System.out.println(arr[1][1]); //0
System.out.println(arr[2][1]); //0
//赋值后打印元素
arr[0][1]=10;
arr[1][1]=20;
arr[2][1]=30;
System.out.println(arr[0][1]); //10
System.out.println(arr[1][1]); //20
System.out.println(arr[2][1]); //30
动态初始化方式二(指定二维数组中有多少个一维数组,每个一位数组的长度不固定):
数据类型[][] 变量名=new 数据类型[m][];
m的数据必须给,后面的数据可以不给
给二维数组的一维数组元素赋值时只能使用下面的方式:
arr[0]=new int[2];
arr[0][0]=1;
arr[0][1]=2;
不能用下面的方式:
arr[0]={1,2};
arr[1]={2,3,4};
arr[2]={4}; **这种方式是错误的**
3.二维数组的静态初始化:
数据类型[][] 变量名=new 数据类型[][]{{元素…},{元素…},{元素…}};
简化格式:
数据类型[][] 变量名={{元素…},{元素…},{元素…}};
需求:定义一个里面有3个长度一样的一维数组的二维数组(使用静态初始化)
int[][] arr={{1,2,}{3,4},{5,5}}; //new int[3][2];
int[][] arr={{1,2},{3,4,5},{5,6}}; //new int[3][];
需求:定义一个里面有3个长度不一样的一维数组的二维数组,并遍历.
int[][] arr={{2,3},{1,4,5},{6,7,8}};
for(int i=0;ilength;i++){
for(int j=0;jlength;j++){
System.out.print(arr[i][j]);
}
System.out.println();
}
如果形式参数是基本类型:形式参数的改变,不影响实际参数。
如果实际参数是引用类型:形式参数的改变,直接影响实际参数。
1.基本概念:相邻两个元素进行比较,小的放前面,大的放后面。
第一次比较结束,最大值在最大索引处;
第二次比较结束,次大值在次大索引处;
……
2.代码实现:
for(int i=0;ilength-1;i++){
for(int j=0;jlength-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=arr[j];
}
}
printArr(arr); //打印数组的方法
}
1.基本概念:从0索引开始,依次和后面的元素进行比较。
第一次比较结束,最小值出现在最小索引处;
第二次比较结束,次小值出现在次小索引处;
……
2.代码实现:
for(int i=0;ilength-1;i++){
for(int j=i+1;jlength;j++){
if(arr[i]>arr[j]){
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
printArr(arr);
}
成员方法:
public static String toString(int[] a):把数组转换成字符串。
public static void sort(int[] a):对数组进行排序(有重载)。
需求:把字符串中的字符进行排序。
* 举例:”dacgebf”
* 结果:”abcdefg”
public static void main(String[] args) {
//使用冒泡排序
String s = "dacgebf";
//转换成字符数组
char[] chs = s.toCharArray();
/*//使用冒泡排序对字符根据ascii码表进行排序
for (int i = 0; i < chs.length-1; i++) {
for (int j = 0; j < chs.length-1-i; j++) {
if (chs[j]>chs[j+1]) {
char temp = chs[j];
chs[j] = chs[j+1];
chs[j+1] = temp;
}
}
}*/
//使用Arrays里面的sort()方法给字符数组进行排序
Arrays.sort(chs);
//打印数组
System.out.println(Arrays.toString(chs));
}