Java:将矩阵转换为列表:我的add方法不起作用,我不知道为什么
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:将矩阵转换为列表:我的add方法不起作用,我不知道为什么相关的知识,希望对你有一定的参考价值。
我继续得到一个错误,说我的添加方法说找不到合适的方法。该程序的目标是将矩阵的所有值都放入列表中,我无法使其工作,因为它在此行上不断给出错误:
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>
。
以上是关于Java:将矩阵转换为列表:我的add方法不起作用,我不知道为什么的主要内容,如果未能解决你的问题,请参考以下文章