在C+中转换二叉树+;到爪哇 我有下面的代码,我试图从C++转换成java。该代码应该生成一个二叉树,用于计算股票期权价格。 下面是C++代码: class Price { public: double stockPrice; double optionPrice; }; int numIntervals = 500; Price ** binomialTree; binomialTree = new Price*[numIntervals+1]; for (i = 0; i <= numIntervals; i++) { binomialTree[i] = new Price[i + 1]; } for (i = 0; i <= numIntervals; i++) { for (j = 0; j <= i; j++) { binomialTree[i][j].stockPrice = sNaught * pow(up, j) * pow(down, i-j); } }

在C+中转换二叉树+;到爪哇 我有下面的代码,我试图从C++转换成java。该代码应该生成一个二叉树,用于计算股票期权价格。 下面是C++代码: class Price { public: double stockPrice; double optionPrice; }; int numIntervals = 500; Price ** binomialTree; binomialTree = new Price*[numIntervals+1]; for (i = 0; i <= numIntervals; i++) { binomialTree[i] = new Price[i + 1]; } for (i = 0; i <= numIntervals; i++) { for (j = 0; j <= i; j++) { binomialTree[i][j].stockPrice = sNaught * pow(up, j) * pow(down, i-j); } },java,c++,arrays,multidimensional-array,binomial-theorem,Java,C++,Arrays,Multidimensional Array,Binomial Theorem,行长度是动态的二维数组在Java中非常可能。由于我没有您的全部设置,下面是一个简短的示例: Price[][] binomialTree = new Price[20][]; for ( int i = 0 ; i < 20 ; i++ ) { binomialTree[i] = new Price[i+1]; } for ( int i = 0; i < 20; i ++ ) { System.out.

行长度是动态的二维数组在Java中非常可能。由于我没有您的全部设置,下面是一个简短的示例:

     Price[][] binomialTree = new Price[20][];
     for ( int i = 0 ; i < 20 ; i++ ) {
         binomialTree[i] = new Price[i+1];
     }

     for ( int i = 0; i < 20; i ++ ) {
          System.out.println( Arrays.toString(binomialTree[i]));
     }
这仅仅是一种语法糖,其作用与创建对
Price
数组的引用的5个元素数组相同,然后创建对
Price
的7个引用的5个数组,并将它们分配给第一个数组的每个元素


关于这一点的正式讨论,请阅读。

为什么您认为在Java中无法做到这一点?Java中没有指针。而且,在C++代码中初始化2D数组的方式是动态的。实际上,java几乎只是基于指针和堆分配。它们称为引用,但行为与C++指针(减去指针算术)几乎完全相同。
     Price[][] binomialTree = new Price[20][];
     for ( int i = 0 ; i < 20 ; i++ ) {
         binomialTree[i] = new Price[i+1];
     }

     for ( int i = 0; i < 20; i ++ ) {
          System.out.println( Arrays.toString(binomialTree[i]));
     }
[null] [null, null] [null, null, null] [null, null, null, null] ...
Price[][] arr = new Price[5][7];