数组

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();
			}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值