Java 将数组值从一个方法传递到另一个方法

Java 将数组值从一个方法传递到另一个方法,java,Java,您好,我正在为java开发一个数学库,我编写了方法Matrix(),setMatrix(),getMatrix()是getMatrix()所必需的,getMatrix()方法可以更精确地返回整个二维数组的所有值 static int[][] getMatrix(){//return matrix return matrix; }//why returns a reference instead of an array value ? [[I@15db9742 only this

您好,我正在为java开发一个数学库,我编写了方法Matrix(),setMatrix(),getMatrix()是getMatrix()所必需的,getMatrix()方法可以更精确地返回整个二维数组的所有值

static int[][] getMatrix(){//return matrix
        return matrix;
}//why returns a reference instead of an array value ? [[I@15db9742 only this
类数学技巧{
私有静态int[][]矩阵;
专用静态int行_0;
私有静态int列_0;
静态整数矩阵(整数行,整数列){//矩阵

对于(int l=0;l,因为您需要数组并且返回的是正确的。您必须将该数组转换为字符串。请尝试使用
Arrays.toString(matrix);

返回的当前值是矩阵值在内存中的表示形式


请参考as

它确实返回矩阵。您不能像正在尝试的那样打印矩阵。您需要打印每个值。或者您可以简单地迭代行,然后将每个行传递给
数组。toString()
来显示它们。您可能还想为您的库编写自己的显示例程。

您想知道如何打印矩阵吗?为什么您的代码不能编译?您的问题是什么?作为初学者,您不应该使用单词
static
来声明字段。为什么您要在中的嵌套for循环中创建新的矩阵数组de>Matrix
方法?应该在嵌套循环之外创建。我不确定该方法应该做什么。@jim829б设置matrixOr的维度,而不是返回“内存分配”。它返回对矩阵的引用。我正在用您的姓名和提供的链接更新答案。是的,我要说的是,这是矩阵对象在内存中的表示。我是wright吗?Oracle版本Java中的哈希代码默认为对象的内存地址。默认值为toString()方法以十六进制形式返回该值。@如何将字符串转换回二维数组?我不理解您的问题。
Arrays.toString()的目的
用于显示矩阵的每一行。无需转换。@JB Nizet使用Integer.parseInt(String)方法将矩阵行的方法求和转换为值;写入java error.lang.NumberFormatException:对于输入字符串:“[[50],[50],[50],[50]]”将
数组.toString()的方法归零
的设计目的不是将其转换为类型
int
。它只是用来显示方括号和
整数之间逗号分隔的值列表。parseInt(String)
只接受一个数字字符串,其他什么都不接受。例如
“1234”
。请检查Java API或了解如何使用数组。toString(),Integer.parse()或任何其他方法。
class Mathematik {

    private static int[][] matrix;
    private static int line_0;
    private static int column_0;

    static int Matrix(int line, int column){//Matrix
        for(int l=0; l<line; l++){//line
            for(int j=0; j<column; j++){//column
                line_0=l;
                column_0=j;
                matrix=new int[l][j];
            }
        }
        return matrix;
    }

    static int setMatrix(int num){//fill matrix
        for(int l=0; l<line_0; l++){//line
            for(int j=0; j<column_0; j++){//column
                matrix[l][j]=num;
            }
        }
        return 0;
    }

    static int[][] getMatrix(){//return matrix
        return matrix;
    }//why returns a reference instead of an array value ? [[I@15db9742 only this
}

class Activity{
    Mathematik A=new Mathematik();//call the class

    public static void main(Strin[] args){
        A.Matrix(3,3)//create matrix
        A.setMatrix(10)//to fill in the matrix

        System.out.println(""+A.getMatrix());//Writes the grid values to a string
    }
}