C#和Java中二维数组区别分析

本文实例讲述了C#和Java中二维数组区别,分享给大家供大家参考。具体分析如下:

在Java中使用二维数组可以如下代码:

代码如下:

public class Array2D{
    public static void main(String[] args){
        int myInt[][]=new int[5][10];
        //遍历,给数组中的每一个数组赋值
        for(int i=0;i<myInt.length;i++){
            for(int j=0;j<myInt[0].length;j++){
                myInt[i][j]=i*j;
            }
        }
        System.out.println ("myInt.length="+myInt.length+",myInt[0].length="+myInt[0].length);
        //输出数组每一维的下限和上限
        for(int i=0;i<myInt.length;i++){
            for(int j=0;j<myInt[0].length;j++){
                System.out.println ("myInt["+i+"]["+j+"]="+myInt[i][j]);
            }
        }
    }
}

针对上述代码,个人以为在C#中也可以这么做,事实上错了,在C#中int[][] myInt是声明一个交错数组,声明二维数组是这么声明int[,] myInt,上面的代码如果换成C#的,需要如下表示:

代码如下:

class clsArrat2D
{
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            int[,] myInt=new int[5,10];
            //遍历,给数组中的每一个数组赋值
            for(int i=myInt.GetLowerBound(0);i<=myInt.GetUpperBound(0);i++)
            {
                for(int j=myInt.GetLowerBound(1);j<=myInt.GetUpperBound(1);j++)
                {
                    myInt[i,j]=i*j;
                }
            }
            //输出数组每一维的下限和上限
            for(int i=0;i<myInt.Rank;i++)
            {
                Console.WriteLine("{0} {1} {2}", i, myInt.GetLowerBound(i), myInt.GetUpperBound(i));
            }
            //遍历,输出二维数组中每一个元素的个数
            for(int i=myInt.GetLowerBound(0);i<=myInt.GetUpperBound(0);i++)
            {
                for(int j=myInt.GetLowerBound(1);j<=myInt.GetUpperBound(1);j++)
                {
                    Console.WriteLine("myInt[{0},{1}]={2}",i,j,myInt[i,j]);
                }
            }
            Console.ReadLine();
        }
}

总的感觉C#这点做得很烂,明明就是模仿C++和Java,而声明二维数组人家都是这么声明的,微软在这里却标新立异,一不小心栽跟头都不知道为什么,初用起来也很不习惯。

希望本文所述对初学者C#程序设计的学习有所帮助。

(0)

相关推荐

  • Java中增强for循环在一维数组和二维数组中的使用方法

    一维数组: int[] a={1,2,3}; for(int i:a) { System.out.print(i+" "); } 输出:1 2 3 二维数组: import java.util.Scanner; public class tet { public static void main(String[] args) { //int[][] b={{1,2,3},{4,5,6}};行 int[][] a=new int[5][];//必须明确行数 for(int i=0;i&l

  • Java编程中二维数组的初始化和基本操作实例

    Java二维数组的声明和初始化 1.二维数组可以看成以数组为元素的数组: 2.Java中二维数组的声明和初始化应按照从高维到低维的顺序进行. 实例: 静态初始化: Array2.java: 程序代码 public class Array2 { public static void main(String args[]) { int a[][] = {{1,2},{3,4,5,6},{7,8,9}} ; for(int i=0 ; i <a.length ; i++) { for(int j=0

  • java高效打印一个二维数组的实例(不用递归,不用两个for循环)

    打印1个元素,不让循环变量i++,走出思维定式(执行一次循环体,就i++).public class OneForPrint2DArr { public static void main(String[] args) throws Exception { int[][] a = { { 1, 2, 3 }, { 4, 5} }; for (int i = 0, j = 0; i < a.length;) { System.out.println(a[i][j]); j++; if (j >=

  • java旋转二维数组实例

    本文实例讲述了java旋转二维数组的操作,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package test; /*  *     1    2    3    4    5     *    16    17    18    19    6     *    15    24    25    20    7     *    14    23    22    21    8     *    13    12    11    10    9  *  *    写一

  • java定义二维数组的几种写法(小结)

    如下所示: //定义二维数组写法1 class numthree { public static void main(String[] args) { float[][] numthree; //定义一个float类型的2维数组 numthree=new float[5][5]; //为它分配5行5列的空间大小 numthree[0][0]=1.1f; //通过下标索引去访问 1行1列=1.1 numthree[1][0]=1.2f; // 2行1列=1.2 numthree[2][0]=1.3

  • java 求解二维数组列最小值

    java 求解二维数组列最小值 比较二维数组列最小值,组成一个新数组返回. 实现核心算法,不需要使用IO 输入:{{5,6,1,16},{7,3,9}} 输出:{1,3} import java.util.Arrays; public class Col { public static int[] getColMin(int a[][]) { int[] res = new int[a.length]; for (int i = 0; i < a.length; i++) { int[] s =

  • java String 转成Double二维数组的方法

    WHY 朋友在群里求助一个问题,问题原型是这样的: String str = "{{10.14, 11.24, 44.55, 41.01},{12.10, 14.21, 52.14, 50.44},{14.44, 16.12, 45.42, 47.55}}"; 转成double[][]{ {10.14, 11.24, 44.55, 41.01}, {12.10, 14.21, 52.14, 50.44}, {14.44, 16.12, 45.42, 47.55} } 也就是把一个可以转

  • 浅谈java中的一维数组、二维数组、三维数组、多维数组

    这个数组可以看做新手学习,从一维数组 到 多维 数组 循环渐进,其实看起也很简单,一看便知,众所周知,一维.二维或许经常用到,用到二维以上应该就很少了. public class test { public static void main(String[] args) { /*一维数组*/ int num[] = {0,1,2}; /*下面输出 3 行数据,0 ~ 2*/ for (int i = 0; i < num.length; i++) { System.out.println("

  • Java实现顺时针输出螺旋二维数组的方法示例

    最近看到一道有点意思的逻辑算法题,便着手实现一下.题目是要求打印 出N*N顺时针螺旋数组,规律如下: // 1 2 3 4 5 // 16 17 18 19 6 // 15 24 25 20 7 // 14 23 22 21 8 // 13 12 11 10 9 Java 实现示例代码如下: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new

  • java 二维数组矩阵乘法的实现方法

    复制代码 代码如下: public interface IMatrixMultiple {     public int[][] mmltiple(int[][]a ,int [][]b); } ?public class MatrixMultiple implements IMatrixMultiple { @Override    public int[][] mmltiple(int[][] a, int[][] b) {         int [][] result = new int

随机推荐