我正在嘗試做什麼,這不會做,也許永遠不會做,是使用循環創建一個數組,然後調用該數組在另一個類中。什麼是最好的方式去做這件事。我已經找遍瞭解決方案,他們不會編譯。謝謝您的幫助。編號: 新問題。 在線程「main」中獲取錯誤異常java.lang.OutOfMemoryError:java.util.Arrays.copyOf上的Java堆空間 (java.util.Arrays.copyOf(Arrays.java:3210) java.util.Arrays.copyOf(Arrays.java:3181) 在java.util.ArrayList.grow(ArrayList.java:261) 在java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235) 在java.util.ArrayList.ensureCapacityInternal(ArrayList.java:227) 在java.util.ArrayList.add(ArrayList.java:458) 在Grow.policy(Grow.java:14) 在Test.main(Test.java:8)在while循環(或for循環)內創建一個數組,然後在外部使用該數組
public class Test{
public static void main(String[] args){
Grow trr = new Grow();
ArrayList arr = trr.policy();
System.out.print(arr);
}
}
這裏是我有什麼現在。一切工作,直到我嘗試在測試類中的數組。
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);
}
}
我知道這很簡單。我只是看不到解決方案。提前致謝。 編輯:更新。發現問題。列只減少1(真的可以使用列 - ;),這使得它永遠循環。在代碼中添加了列++,現在它可以工作。知道這是簡單的事情。
您可以像所有其他引用一樣傳遞List。目前尚不清楚問題是什麼。 –
JLS將是你最好的朋友之一。在這種情況下,請查看變量作用域的規則 - https://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html#jls-6.3具體來說:在本地變量聲明的範圍塊(第14.4節)是聲明出現的塊的其餘部分,從其自己的初始化程序開始,並在本地變量聲明語句右側包含任何其他聲明符。 –
行和列何時初始化? – Tezra