嵌套数组

要注意多维数组和嵌套数组二者之间的区别,嵌套数组也叫数组的数组,或者交错数组。通过以下方式来声明变量:

int[3][2] arr;

就是数组中的每个元素也是数组,也就是数组里面也包含数组。如:

//嵌套数组
char[][] ccs = new char[][]
{
    new char[]{'a','b'},
    new char[]{'c','d'},
    new char[]{'e','f','g'}
};

在上面的代码中,声明了一个嵌套数组,该数组从外到内有两层,最外层包含三个元素,而每个元素又是一个char数组。第一个char数组包含两个元素,第二个char数组也包含了两个元素,第三个char数组则包含了三个元素。
嵌套数组要比多维数组复杂,它是从外向内一层一层地进行嵌套。其实我们在声明嵌套数组时,可以通过中括号的对数来确定嵌套数组所包含的层数。例如,int[][]表示该数组包含两个层数组,int[][][]则表示其中包含三层数组。
下面用一个示例来演示一个三层嵌套的数组,嵌套数组变量的声明如下:

   //三层嵌套的数组
    int[][][] ints = new int[3][][]
    {
        new int[2][]
        {
            new int[]{20,32,2},
            new int[]{1,11,29,6}
        },
        new int[2][]
        {
            new int[]{27,26,17},
            new int[]{199}
        },
        new int[2][]
        {
            new int[]{40,74,81},
            new int[]{120,95}
        }
    };

该数组有三个层次(int[][][]),第一层有三个元素,每个元素又是一个两层嵌套的数组(int[][]);然后第二层中每个元素又是一个数组(int[]);到了第三层才是单个int数值。
然后,把这个嵌套数组的所有元素输出到屏幕。

  System.Console.WriteLine(ints.GetType().Name);
    for(int i = 0;i<ints.Length;i++)  //第一层
    {
        System.Console.WriteLine(" "+ints[i].GetType().Name);
        for(int j = 0;j<ints[i].Length;j++)  //第二层
        {
            System.Console.WriteLine("  "+ints[i][j].GetType().Name);
            Console.Write("   ");
            for(int k = 0;k<ints[i][j].Length;k++)   //第三层
            {
                System.Console.Write(ints[i][j][k] + " ");
            }
            System.Console.WriteLine();
        }
    }

输出如下:

Int32[][][]
 Int32[][]
  Int32[]
   20 32 2 
  Int32[]
   1 11 29 6 
 Int32[][]
  Int32[]
   27 26 17 
  Int32[]
   199 
 Int32[][]
  Int32[]
   40 74 81 
  Int32[]
   120 95 
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值