/**
* 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我该如何设置它的大小?
答案 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。