首页 > 解决方案 > 从一维数组自动生成可变大小的二维数组

问题描述

我正在寻找一些关于如何创建基于两个参数生成二维数组的方法的建议,一个整数 s 将指示二维数组的行数,而 int x[] 将是长度为 20 的不同一维数组将填充二维数组的每一行。到目前为止,这是我想出的方法,但它只用 0 填充每一行,只有一行填充了输入数组。我基本上需要用一堆相同大小的一维数组填充自动生成的二维数组的每一行。请帮忙。谢谢 !

public class c {
   public int [][] f;

   public int [][] a(int x[], int s){
    f = new int [s][20];
    for(int j = 0; j < x.length; j++) {
        f[s-1][j] = x[j];
    }
   return f;
 }

  public void d(){
    for (int i =0; i < f.length; i++) {
        for(int j = 0; j < f[i].length; j++) {
            System.out.print(f[i][j] + " ");
        }
    System.out.println(" ");
    }
  } 
}

标签: javaarraysmultidimensional-arraymethods

解决方案


这可以在java中使用stream api来实现

int[][] arrInt = { { 1, 2 }, { 3, 4, 5 } };
int result[] = Arrays.stream(arrInt).flatMapToInt(Arrays::stream).toArray();
System.out.println(Arrays.toString(result));

推荐阅读