复习笔记14 数组

import java.util.Arrays;



public class Test15
{
	public static void main(String[] args)
	{
		//如果以此种方式创建数组,则必须定义数组长度
		int[] arr = new int[3];
		
		//这种方式的创建,不限制长度,以你声明的元素
		//个数决定长度
		int[] arr$1 = new int[]{1,2,3};
		
		//这种声明方式是上一个方式的便捷写法
		int[] arr$2 = {1,2,3};
		
		//常数声明只能用在数组初始化上,这种赋值的方式
		//是会编译错误的
		int[] arr$3 = new int[3];
//		arr$3 = {1,2,3};
		
		//这样算是种初始化方式,不过略显麻烦
		arr$3[0] = 0;
		arr$3[1] = 0;
		arr$3[2] = 0;
		
		//对于给数组中所有元素赋值成一样的值,api提供支持
		//虽然不如自己写个for了。。。为了代码美观
		Arrays.fill(arr$3, 0);
		
		//多维数组,允许先声明最高维度的长度
		int[][] arr_2 = new int[3][];
		int[][][] arr_3 = new int[3][3][];
		
		//这种的声明方式是错误的,因为高维度的数组
		//还是未被声明的
//		int[][][] arr_4 = new int[][][3];
		
		//有点联系吧,但也不绝对
		int[][] arr_5 = {{1,2},{3,4}};
		int[] arr_6 = {1,2,3,4};
		
		//二维数组转化成一维数组
		for (int i = 0; i < arr_6.length; i++)
        {
	        arr_6[i] = arr_5[i % 2][i / 2];
        }
		
		//一维数组转化成二维数组
		for (int i = 0; i < arr_5.length; i++)
        {
	        for (int j = 0; j < arr_5[0].length; j++)
            {
	            arr_5[i][j] = arr_6[i * 2 + j];
            }
        }
		
		//由于上边的方式不是很科学,因为如果二维数组里的
		//每个一维数组长度不固定呢?比如arr5这个数组,
		//12,34可以吧,1,234 这样也行吧? 123,4,这也可以
		//所以内循环的边界应该根据当前的内部数组的长度来定
		for (int i = 0; i < arr_5.length; i++)
        {
	        for (int j = 0; j < arr_5[i/*关键点是这个i*/].length; j++)
            {
	            arr_5[i][j] = arr_6[i * 2 + j];
            }
        }
		
		//虽然多维数组也是一维数组实现的,但有些情况下并不
		//等价,比如下面这个,里边的一维数组长度不固定,
		//并且其中还有一个是null,这样就没办法跟一维数组
		//建立联系,因为根本不知道其中这个null的一维数组的长度
		int[][] arr_7 = {{1,2},{1,2,3,4,5},null,{1}};
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值