Java 中的类型不匹配错误,二维数组声明

Type mismatch error in Java, 2D array declaration

public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)

    {
        HashMap<String, double[][]> result= new HashMap<String, double[][]>();

        double[][] theta_tran=new *double[theta[0].length][theta.length]();*
        double[][] theta_grad=new *double[theta.length][theta[0].length]();*
-------
---
--
--}

我在声明二维双精度数组时遇到错误。 类型不匹配错误。无法将 double[][][] 转换为 double[][] 谁能告诉我我在哪里弄错了以及如何解决?

非常感谢!!!!

我修复了您 post 编写的代码,因此我可以尝试编译它。

import java.util.*;

public class Test {

    public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
    {
        HashMap<String, double[][]> result= new HashMap<String, double[][]>();

        double[][] theta_tran=new double[theta[0].length][theta.length]();
        double[][] theta_grad=new double[theta.length][theta[0].length]();
    }

}

然后我编译了一下:

> javac -d . Test.java
Test.java:9: error: ';' expected
        double[][] theta_tran=new double[theta[0].length][theta.length]();
                                                                       ^
Test.java:10: error: ';' expected
        double[][] theta_grad=new double[theta.length][theta[0].length]();
                                                                       ^
2 errors

下次您提出问题时,您应该post准备好编译的最少量代码,并且可以证明您的问题。

您不应该以任何奇怪的方式修改您的代码来指出您的问题所在。我们不知道这些星号是否是您代码的实际部分。如果您必须添加某些内容,请使用评论。

并且您应该包含您收到的错误消息。错误消息非常清楚你做错了什么。

这个可以编译:

import java.util.*;

public class Test {

    public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
    {
        HashMap<String, double[][]> result= new HashMap<String, double[][]>();

        // No brackets needed for array instantiation
        double[][] theta_tran=new double[theta[0].length][theta.length];
        double[][] theta_grad=new double[theta.length][theta[0].length];

        return null;
    }

}

这根本不是您描述的错误。如果你真的有类型不匹配,它不在你 posted 的代码中的任何地方。