A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Coding 中级黑马   /  2014-1-1 21:37  /  2275 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Coding 于 2014-1-2 19:00 编辑

string[ ][ ] string[,]的区别,使用方法

评分

参与人数 1技术分 +1 收起 理由
陈福军 + 1

查看全部评分

5 个回复

倒序浏览
string[ ][ ]是二维数组, string[ ]是一维数组
一维数组和二维数组的定义

单行或单列的数组,我们称为一维数组。

多行多列(含2行2列)的数组是二维数组。
回复 使用道具 举报
本帖最后由 如远行客 于 2014-1-2 10:37 编辑

string[ ][ ]是一个交错数组,交错数组可以称为数组的数组,例如,int[][] s=new int[3][]可以理解为声明了3个数组,这3组数组都是一维数组,它们的长度不一定相等,可以这样实例化这三个数组:
{
      new int[]{2,5,1,7,6,45};
      new int[]{12,55,17,72};
      new int[]{25,1,7,6,45};
}
这三个数组都是一维数组,长度也不同(当然也可以相同)。
而string[,]表示这是一个二维数组。
我们可以将这两种数组中的元素排列成行和列,交错数组所排列成的不一定是一个矩形的区域,因为其每个数组的长度是分别定义,而二维数组排列的就是一个规整的矩形,因为其每一列的元素个数都会在定义时统一定义。
如果在应用程序中用到非矩形的数组,可以将二维数组定义成交错数组,这样就可以节省内存。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
本帖最后由 lei130102 于 2014-1-2 13:54 编辑

回复失误,请删除此回复
回复 使用道具 举报
1.多维数组:
  1. int[,] array = new int[4, 2];
复制代码
声明创建一个四行两列的二维数组
  1. int[, ,] array1 = new int[4, 2, 3];
复制代码
声明创建一个三维(4、2 和 3)数组。

数组初始化
  1. int[,] array2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
复制代码
  1. int[,] array2Da = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
复制代码
  1. int[,] array4 = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
复制代码
  1. int[,] array5;
  2. array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };// 必须有new int[,]
复制代码
  1. int[,] array6 = new int[10, 10];// 将数组元素初始化为默认值(交错数组除外)
复制代码
访问数组元素
  1. array5[2, 1] = 25;
复制代码
  1. int elementValue = array5[2, 1];
复制代码

2.交错数组:
--交错数组是元素为数组的数组。
--交错数组元素的维度和大小可以不同。
--其元素是引用类型并初始化为 null
  1. int[][] jaggedArray = new int[3][];
  2. jaggedArray[0] = new int[5];
  3. jaggedArray[1] = new int[4];
  4. jaggedArray[2] = new int[2];
复制代码
声明一个由三个元素组成的一维数组,其中每个元素都是一个一维整数数组,必须初始化 jaggedArray 的元素后才可以使用它
(或
  1. int[][] jaggedArray = new int[3][];
  2. jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 };
  3. jaggedArray[1] = new int[] { 0, 2, 4, 6 };
  4. jaggedArray[2] = new int[] { 11, 22 };
复制代码
或   
  1. int[][] jaggedArray2 = new int[][]
  2. {   
  3. new int[] {1,3,5,7,9},
  4. new int[] {0,2,4,6},
  5. new int[] {11,22}
  6. };
复制代码
或   
  1. int[][] jaggedArray3 =
  2. {   
  3. new int[] {1,3,5,7,9},//不能从元素初始化中省略 new 运算符,不存在元素的默认初始化   
  4. new int[] {0,2,4,6},   
  5. new int[] {11,22}
  6. };
复制代码
)
访问数组元素
  1. jaggedArray3[0][1] = 77;
复制代码
  1. System.Console.Write("{0}", jaggedArray4[0][1, 0]);
复制代码
  1. System.Console.WriteLine(jaggedArray4.Length);//交错数组的Length属性
复制代码
  1. class ArrayTest{   
  2. static void Main()   
  3. {        
  4. // Declare the array of two elements:        
  5. int[][] arr = new int[2][];         
  6. // Initialize the elements:        
  7. arr[0] = new int[5] { 1, 3, 5, 7, 9 };        
  8. arr[1] = new int[4] { 2, 4, 6, 8 };         
  9. // Display the array elements:        
  10. for (int i = 0; i < arr.Length; i++)        
  11. {            
  12. System.Console.Write("Element({0}): ", i);            
  13. for (int j = 0; j < arr.Length; j++)            
  14. {               
  15. System.Console.Write("{0}{1}", arr[j], j == (arr.Length - 1) ? "" : " ");            
  16. }            
  17. System.Console.WriteLine();                  
  18. }        
  19. // Keep the console window open in debug mode.        
  20. System.Console.WriteLine("Press any key to exit.");        
  21. System.Console.ReadKey();   
  22. }
  23. }
  24. /* Output:   
  25. Element(0): 1 3 5 7 9   
  26. Element(1): 2 4 6 8
  27. */
复制代码



评分

参与人数 1技术分 +1 收起 理由
陈福军 + 1

查看全部评分

回复 使用道具 举报 1 0
交错数组和二维数组的区别
二维数组是按照你定义的类型的一组数,比如
int [2,3]那就是说一个两行三列,每一个元素都是一个整型数的数组,但是交错数组int[2][],意思是这个数组有两个元素,每一个元素都是一个整型的数组,但是长度可以不一样,比如int [][] arr= new int[2][];
int [0][]=new int[10];
int [1][]=new int[8];
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马