数组那些事儿

数组那些事儿


数组

1.定义:数据就是具有相同的数据类型的一组数据集合.
2.初始化一维数组:
	方式1:int[] arr1=new int[]{1,2,3,4,5,6}
	方式2:int[] arr2={1,2,3,4,5,6}
3.数组内元素个数:数组.legth

例:数组元素求和

public static void main(String[] args) {
		//一维数组的求和
		int[] arr= {11,22,33,44,55,66};
		
		//进行累加求和的变量sum
		int sum=0;
		System.out.println("数组的和为:");
		//利用for循环遍历
		for(int i=0;i<arr.length;i++) {
			//当i为数组的最大下标时输出"="
			if(i==arr.length-1)
				System.out.print(arr[i]+"=");
			else System.out.print(arr[i]+"+");
			sum+=arr[i];
		}
		System.out.println(sum);
	}
//	数组的和为:
//		11+22+33+44+55+66=231

例:求一维数组的最小值

//求数组元素的最大值
	public static void main(String[] args) {
		int[] arr= {99,11,33,44,55,66};
		//默认数组的第一个元素为最大值
		int max=arr[0];
		for(int i=1;i<arr.length;i++)
			if(max<arr[i])
				max=arr[i];
		System.out.println("数组的最小值:"+max);
	}
	//数组的最大值:11

例:二维数组和一维数组内存比较

public static void main(String[] args) {
        int num1=1024*1024*2;
        int[] arr1=new int[num1];
        for(int i=0;i<arr1.length;i++)
            arr1[i]=i;
        long m1 = Runtime.getRuntime().totalMemory() / 1024 / 1024;
    	//将占用内存大小转化为MB
        System.out.println("一维数组占用内存:"+m1+"MB");

        int num2=1024*1024;
        int[][] arr2=new int[num1][2];
        for(int i=0;i<arr2.length;i++){
            arr2[i][0]=i;
            arr2[i][1]=i;
        }
    	//将占用内存大小转化为MB
        long m2 = Runtime.getRuntime().totalMemory() / 1024 / 1024;
        System.out.println("二维数组占用内存:"+m2+"MB");
    }

例:利用数组输出九宫格

//输出九宫格
	public static void main(String[] args) {
        //创建一个数组方阵
		int[][] arr=new int[3][3];
        //第三行的行下标
		int a=2;
        //第2列的列下标
		int b=3/2;
		
		for(int i=1;i<=9;i++) {
			arr[a++][b++]=i;
			if(i%3==0) {
				a=a-2;
				b=b-1;
			}else {
				a=a%3;
				b=b%3;
			}
		}
		System.out.println("输出:");
		
		for(int i=0;i<3;i++) {
			for(int j=0;j<3;j++) {
				System.out.print(arr[i][j]+"\t");
			}
			System.out.println();
		}
	}

//输出:
	//4	9	2	
    //3	5	7	
    //8	1	6

例:二维数组行转列

public static void main(String[] args) {
		//二维数组行转列
		int[][] arr= {{1,2,3},{4,5,6},{7,8,9}};
		//打印原数组
		System.out.println("原来的数组:");
		for(int i=0;i<arr.length;i++)
			System.out.println(Arrays.toString(arr[i]));
		//定义一个新数组存储转换后的数据,数组长度和原数组保持一致
		int[][] newArr=new int[arr.length][arr[0].length];
		for(int i=0;i<arr.length;i++)
			for(int j=0;j<arr[i].length;j++)
				newArr[j][i]=arr[i][j];
		//打印新数组
		System.out.println("新数组:");
		for(int i=0;i<arr.length;i++)
            //利用数组工具类,
			System.out.println(Arrays.toString(newArr[i]));
	}

//原来的数组:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
新数组:
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值