数组(array)是一组类型相同的变量的集合可以通过一个公共的名称来访问其中的变量它具有一个特殊的性质作为对象来应用 一维数组 声明形式type[] arrayname=new type[size] 注区分C与C++方括号是在类型的后边而不是在数组名称的后边 初始化数组 int[] nums = new int[]; int[] nums; nums = new int[]; int[] nums = {}; //等价下边 int[] nums = new int[]{}; //new int[]可省略 int[] nums; nums = new int[]{}; //new int[]不可省略 ========================= 多维数组 声明方式 type[] arrayname = new type[sizesizesizeN]; 注区分CC++Java多维数组是在方括号内以逗号区分而不是以多个方括号区分 初始化 int[] multidim = new int[]; type[] arrayname={ {valval} {valval}
{valval} } 如class Squares { public static void Main() { int[] sqrs={ {} {} {} {} {} {} {} {} {} {} }; int ij; for(i=;i<i++) { for(j=;j<;j++) ConsoleWrite(sqrs[ij]+ ); ConsoleWriteLine(); } } } 非齐整数组 声明方式 type[][] arrayname = new type[size][] 注意指声明行数声明维数 如 int[][] jagged = new int[][]; jagged[] =new int[]; jagged[] =new int[]; jagged[] =new int[]; 数组扩展 数组的赋值引用 代码 class AssignARef{ public static void Main(){ static void Main(string[] args) { int i; int[] nums = new int[]; int[] nums = new int[]; for (i = ; i < ; i++) nums[i] = i; for (i = ; i < ; i++) nums[i] = i; ConsoleWrite(Here is nums:); for (i = ; i < ; i++) ConsoleWrite(nums[i] + ); ConsoleWriteLine(); ConsoleWrite(Here is nums:); for (i = ; i < ; i++) ConsoleWrite(nums[i] + ); ConsoleWriteLine(); nums = nums; //将nums引用赋值给nums ConsoleWrite(Here is nums after assignment:); for (i = ; i < ; i++) ConsoleWrite(nums[i] + ); ConsoleWriteLine(); //现在就可以通过nums数组来操作nums数组了 nums[] = ; ConsoleWrite(Here is nums after change through nums:); for (i = ; i < ; i++) ConsoleWrite(nums[i] + ); ConsoleWriteLine(); ConsoleReadKey(); } } } 运行结果 如结果所示将nums赋值给nums后两个数组引用变量都将指向相同对象 非齐整数组的Length属性 当Length属性用于非齐整数组时会出现一些特殊情况此时可以获得每个单独数组的长度 一下程序是模拟个节点的网络中的CPU占用情况 代码 class Jagged { static void Main(string[] args) { int[][] network_nodes = new int[][]; network_nodes[] = new int[]; network_nodes[] = new int[]; network_nodes[] = new int[]; network_nodes[] = new int[];
int i j;
for (i = ; i < network_nodesLength; i++) for (j = ; j < network_nodes[i]Length; j++) network_nodes[i][j] = i * j + ; ConsoleWriteLine(Total number of network nodes: + network_nodesLength + \n);
for (i = ; i < network_nodesLength; i++) { for (j = ; j < network_nodes[i]Length; j++) { ConsoleWrite(CPU usage at node + i + CPU + j + : ); ConsoleWrite(network_nodes[i][j] + % ); ConsoleWriteLine(); } ConsoleWriteLine(); } ConsoleReadKey(); } } 运行结果 |