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方法不起作用,我不知道为什么的主要内容,如果未能解决你的问题,请参考以下文章

如何将矩阵转换为 R 中的列向量列表?

将矩阵转换为128x128图片

将字符串转换为json不起作用java

为啥 Set.add() 方法在匿名 Runnable 中不起作用?

我不知道为啥我的 add 方法不起作用

Android ArrayAdapter.Add 方法不起作用