これはやりませんが、おそらく決して行うことはありませんが、ループを使用して配列を作成して呼び出します他のクラスの配列これについて最善の方法は何でしょうか。私は解決のために全部を見てきました、そして、彼らはコンパイルされません。助けてくれてありがとう。whileループ内の配列を作成する(またはループのために)その配列を外側に使用する
import java.util.*;
public class Test{
public static void main(String[] args){
Grow t = new Grow();
ArrayList arr = new ArrayList();
arr = t.Grow();
System.out.print(arr);
}
}
public class Grow{
static int row;
static int column;
public ArrayList<Integer> poli(){
while(row < 51){
int r = row;
while(column < 1){
ArrayList<Integer> policy = new ArrayList<Integer>();
policy.add(r);
policy.add(0);
}
column-=1;
row++;
}
return policy;
}
編集: 新しい問題。 エラーの取得スレッド "main"の例外java.lang.OutOfMemoryError:Javaヒープスペース at java.util.Arrays.copyOf(Arrays.java:3210) at java.util.Arrays.copyOf(Arrays.java:3181) (ArrayList.java:227) at java.util.ArrayList.gens(ArrayList.java:261) Grow.policyでjava.util.ArrayList.add(ArrayList.java:458) はTest.mainで(Grow.java:14) (Test.java:8)
public class Test{
public static void main(String[] args){
Grow trr = new Grow();
ArrayList arr = trr.policy();
System.out.print(arr);
}
}
ここで私が持っているものです今。 Testクラスで配列を作成するまではすべて動作します。
import java.util.*;
public class Grow{
static int row;
static int column;
public ArrayList<Integer> policy(){
ArrayList<Integer> policy = new ArrayList<Integer>();
while(row < 51){
while(column < 1){
policy.add(row);
policy.add(0);
column++; //this addition fixed my problem
}
column-=1;
row++;
}
return policy;
}
}
public class Test{
public static void main(String[] args){
Grow work= new Grow();
ArrayList testing= work.policy();
System.out.print(testing);
}
}
私はそれが簡単なことを知っています。私は解決策を見ることができません。前もって感謝します。 EDIT:更新。問題が見つかりました。列は1だけ減少しました(実際には列を使用することができます;)。コードに++のコードを追加しました。それが何か簡単だと分かっていました。
他の参照と同様に 'List'sを渡すことができます。問題の内容は明らかではありません。 –
JLSはあなたの親友の一人になります。この場合、可変スコープのルール(https://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html#jls-6.3)を確認してください。具体的には、次のようなローカル変数宣言のスコープです。ブロック(14.4節)は、宣言が現れるブロックの残りの部分であり、それ自身のイニシャライザから始まり、ローカル変数宣言文の右側の宣言子を含む。 –
行と列はいつ初期化されますか? – Tezra