1.数组的定义格式
第一种:数据类型[]数组名=new 数据类型[数组的大小/长度]--动态初始化;
第二种:数据类型[]数组名=new 数据类型[]{元素1,元素2,...,元素n};--静态初始化
第三种:数据类型[]数组名={元素1,元素2,......,元素n};--不能分开定义
2.数组的应用
2.1 获取数组的元素
int arr[]={1,2,4,5,9,8,5};
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
2.2 获取指定下标的元素
数组的下标从0开始,到数组的长度-1结束
例如:打印数组数为4的元素
分析:数组里面元素4所对应的下标为2,实际上我们获取下标为2的元素即可
int arr[]={1,2,4,5,9,8,5};
System.out.println(arr[2]);
2.3 冒泡排序
for(int i=1; i<arr.length;i++){
for(int j=1;j<=arr.length-i;j++){
if(arr[j-1]>arr[j]){
int temp=arr[j-1];
arr[j-1]=arr[j];
arr[j]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
2.4 选择排序
int[] arr = {23,12,48,56,45};
for(int i=0;i<arr.length;i++) {
int tem = i;
for(int j=i;j<arr.length;j++) {
if(arr[j] < arr[tem]) {
tem = j;
}
}
int temp1 = arr[i];
arr[i] = arr[tem];
arr[tem] = temp1;
}
System.out.println(Arrays.toString(arr));
2.5 反转排序
int[] arr = {23,12,48,56,45};
for(int i=0;i<arr.length / 2;i++) {
int temp = arr[i];
arr[i] = arr[arr.length-i-1];
arr[arr.length-i-1] = temp;
}
System.out.println(Arrays.toString(arr))
2.6 数组的复制
System.arraycopy(要复制的数组,要复制的起始下标,要存放的数组,要存放的起始下标,要夫复制的元素的个数)
数组的扩容|缩容--本质上就是数组的复制,所以扩容之后地址必然发生了改变
数组=Arrays.copyOf(要扩容的数组,扩容之后的长度);
3.二维数组
定义:存储数组的数组--二维数组--二维数组中每一个元素就是一个数组
定义格式:分三种
第一种:
数据类型[][]数组名=new 数据类型[二维数组的长度][包含的以为数组的长度];
第二种:
数据类型[][]数组名=new 数据类型[二维数组的长度][];
例如:
int [][]arr=new int[3][];
arr[0]=new int[3];
arr[1]=new int[7];
arr[2]=new int[4];
第三种
数组类型[][]数组名={{一维数组1},{一维数组2},......{一维数组n}};
例如:
int[][]arr={{2,4},{1,1,2},{8},{1,15,17}};
杨辉三角:
int max=10;
int [][]arr=new int[max+1][];
for(int n=0;n<=max;n++)
arr[n]=new int[n+1];
for(int n=0;n<arr.length;n++)
for(int k=0;k<arr[n].length;k++) {
int lotteryOdds=1;
for(int i=1;i<=k;i++)
lotteryOdds=lotteryOdds*(n-i+1)/i;
arr[n][k]=lotteryOdds;
}
for(int[]row:arr) {
for(int odd:row)
System.out.printf("%4d",odd);
System.out.println();
}
数组
最新推荐文章于 2022-09-11 17:20:09 发布