我正在尝试将 int[] 矩阵添加到 java 中的 arraylist 中,但我遇到了错误。该怎么办?

问题描述 投票:0回答:1
    ArrayList<ArrayList<Integer>> al= new ArrayList<ArrayList<Integer>>();
    int[][] mat= new int[row][col];
    for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            mat[i][j]=s.nextInt();
        }
    }
    for(int i=0;i<row;i++)
    {
        al.add(mat[i]);
    }

int[] 无法转换为 ArrayList al.add(mat[i]);

java arraylist
1个回答
0
投票

您定义一个包含

ArrayList
对象的
ArrayList
。但是您正在尝试放置一组
int
原始值。数组不是
ArrayList
。因此您收到一条错误,说明您违反了类型系统。

相反,将您的

ArrayList
定义为包含数组。

List < int[] > list = new ArrayList <> ( );
int rows = 3, cols = 3;
int[][] mat = new int[ rows ][ cols ];
int counter = 1;
for ( int i = 0 ; i < rows ; i++ )
{
    for ( int j = 0 ; j < cols ; j++ )
    {
        mat[ i ][ j ] = counter++;
    }
}
for ( int i = 0 ; i < rows ; i++ )
{
    list.add ( mat[ i ] );
}

list.forEach ( ints -> System.out.println ( Arrays.toString ( ints ) ) );

运行时:

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