如何设置已创建的数组的大小?

时间:2017-09-06 02:55:07

标签: java arrays

/**
     * Constructor a matrix which has r rows and c columns.
     * data member nRow and nCol should be set accordingly using setters.
     * AFTER THAT, instance array data should be instantiated to size nRow*nCol
     * @param r: number of rows 
     * @param c: number of columns
     */
    public Matrix(int r, int c)
    {
        setNRow(r);
        setNCol(c);
        data.length = r*c;
    }

这是我试图完成数组数据的方法(?),如下所示:

private double[] 

我收到错误"无法分配最终字段array.length"

如果我不能手动将数组的长度设置为n * r我该如何设置它的大小?

3 个答案:

答案 0 :(得分:3)

创建数组后,无法设置数组大小。在您的代码中,您不需要创建数组,因此您可能想要

data = new double[r*c];

答案 1 :(得分:1)

您无法在java中设置数组的大小。如果您要重置大小,则可以使用ArrayList。在这里你可以继续添加元素,而不必担心arraylist的大小溢出。当你需要获得大小时,请在arraylist上调用card.Points1 = App.correctAnswerPerPhrase; // returns a 0 函数。

来你的例子,你可以这样做:

  

ArrayList data = new ArrayList();   无需像size()中那样设置尺寸(顺便说一下,您打算做data.length = r*c;代替data = new double[r*c];

答案 2 :(得分:1)

在java数组中是对象。它的长度变量是最终变量。这意味着在创建数组后无法更改它的值。您可以使用以下语法创建具有所需大小的数组:

{{1}}

所以你需要做的就是把你想要的任何数据类型和r * c而不是Size。