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]);
您定义一个包含
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