1

2D ブール配列があり、入力に基づいてそのサイズを動的に作成したいと考えています。たとえば、この文字列を入力 "0-1 0-2 1-2 1-3 2-3" として持っています。ダッシュで分割し、int に解析しました。これらの座標はすべて、ブール配列内の位置です。この例では、以下の配列を初期化すると機能します。しかし、入力が変更された場合に動的に初期化するにはどうすればよいでしょうか?

myArray = new boolean [4][4];
4

3 に答える 3

3

固定サイズの配列を使用する必要がある場合は、各座標の値を個別に見つけて、maxこれらの値を初期化に使用できます。

int maxR = 0, maxC = 0;
for (String pair : pairs) {
    int r = ... // first part of the split
    int c = ... // second part of the split
    maxR = Math.max(maxR, r);
    maxC = Math.max(maxC, c);
}
boolean[][] myArray = new boolean[maxR][maxC];
于 2012-12-05T04:17:28.283 に答える
0

代わりに ArrayLists を使用できます。必要に応じてそれらを成長させることができます。(それらを縮小するのは難しいです。)

于 2012-12-05T04:16:10.890 に答える
0

スペースで文字列を分割すると、 " " 合計座標数が得られます。

   String[] splitted = "0-1 0-2 1-2 1-3 2-3".split(" ");

配列を反復処理し、「-」で分割して、maxX と maxY を取得します。これにより、配列の次元が得られます。

宣言は次のようになります

boolean[][] myArray = new boolean[maxX][maxY];

それが役に立てば幸い

于 2012-12-05T06:18:41.043 に答える