【问题标题】:Creating a 2 dimensional jagged array of undetermined size创建一个未确定大小的二维锯齿状数组
【发布时间】:2015-03-30 17:09:46
【问题描述】:

对于我的程序,我正在制作一个二维锯齿状整数数组,其中每个数组的长度取决于用户的输入。

让我们说:

int seq [] [] = new int [M] [];
for(int i = 0; i < M; i++){
    seq[i] = new int [N[i]];

数组的总数(M)和每个数组的长度N个数组取决于用户的输入。 有没有办法可以做到这一点,以便类中的任何方法都可以使用生成的二维数组?

谢谢。

【问题讨论】:

  • 使其成为类的实例变量,然后该类中的每个方法都可以使用它
  • 到底是什么问题? seq.lengthseq[i].length0 &lt;= i &lt; M 应该足以违反任何界限。

标签: java arrays jagged-arrays


【解决方案1】:

你可以把它变成一个实例变量数组,并在一些init方法或构造函数中初始化它。

public class Test{
    int[][] array;

    public void initialize() {
        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt();
        int n = scanner.nextInt();
        array = new int[m][n];
    }

     public void processArray() {
       if(array != null) {
         //process array
       }
     }
}

【讨论】:

  • 这不是锯齿状数组。
  • 这当然只是一个例子。对于每个 m 元素,您可以获得单独的输入并创建该大小的数组。
  • 这很有帮助。我可以从输入中提取每个数组所需的长度。现在应该不难了。非常感谢!
【解决方案2】:

是的,您可以在运行时获取数组的行和列的大小,然后根据您提供的大小创建数组。

 int m;
 int n;
System.out.println("EnTer size of Row and column");
m = input.nextInt();
n = input.nextInt();
int[] arr = new int[m][n];

【讨论】:

  • 这不是锯齿状数组。
猜你喜欢
  • 2011-02-04
  • 1970-01-01
  • 2012-05-03
  • 2015-10-18
  • 1970-01-01
  • 2014-03-16
  • 2014-12-26
  • 2014-04-21
  • 2015-04-23
相关资源
最近更新 更多