Java:将矩阵转换为列表:我的add方法不起作用,我不知道为什么

问题描述 投票:-1回答:2

我继续得到一个错误,说我的添加方法说找不到合适的方法。该程序的目标是将矩阵的所有值都放入列表中,我无法使其工作,因为它在此行上不断给出错误:

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;
}
java sorting matrix
2个回答
0
投票
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。

立即保留适量的列表条目是一种优化:在添加值期间不调整大小,而不是保留太多空间。

事实上,线性阵列也可能是一种选择。


1
投票

你的函数返回一个List<Integer>,但你的list对象被声明为ArrayList<String>,你试图将mat[i][j]添加到。此外,mat[i][j]本身就是一个int,所以list应该是一个ArrayList<Integer>

© www.soinside.com 2019 - 2024. All rights reserved.