我继续得到一个错误,说我的添加方法说找不到合适的方法。该程序的目标是将矩阵的所有值都放入列表中,我无法使其工作,因为它在此行上不断给出错误:
list.add(mat[i][j]);
整个代码如下所示:
List<Integer> go(int[][] mat)
{
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < mat.length; i++)
{
for (int j = 0; j < mat[i].length; j++)
{
list.add(mat[i][j]);
}
}
return list;
}
List<Integer> go(int[][] mat)
{
int capacity = mat.length * mat[0].length; // Not needed.
List<Integer> list = new ArrayList<>(capacity);
for (int i = 0; i < mat.length; i++)
{
for (int j = 0; j < mat[i].length; j++)
{
list.add(mat[i][j]);
}
}
return list;
}
字符串而不是整数。更好的风格是让变量已经是List。
立即保留适量的列表条目是一种优化:在添加值期间不调整大小,而不是保留太多空间。
事实上,线性阵列也可能是一种选择。
你的函数返回一个List<Integer>
,但你的list
对象被声明为ArrayList<String>
,你试图将mat[i][j]
添加到。此外,mat[i][j]
本身就是一个int
,所以list
应该是一个ArrayList<Integer>
。