我想要做的是,这不会做,也可能永远不会做,是使用循环创建一个数组,然后在另一个类中调用该数组。什么是最好的方法来解决这个问题。我一直在找一个解决方案而且他们不会编译。谢谢你的帮助。
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;
}
编辑: 新问题。 在线程&#34; main&#34; java.lang.OutOfMemoryError中获取错误异常:Java堆空间 at java.util.Arrays.copyOf(Arrays.java:3210) at java.util.Arrays.copyOf(Arrays.java:3181) at java.util.ArrayList.grow(ArrayList.java:261) at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235) at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:227) at java.util.ArrayList.add(ArrayList.java:458) 在Grow.policy(Grow.java:14) 在Test.main(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);
}
}
我知道这很简单。我无法看到解决方案。提前致谢。 编辑:更新。发现了问题。列只减少了1(真的可以使用column--;)这使得它永远循环。在代码中添加了列++,现在它可以工作了。知道这很简单。
答案 0 :(得分:1)
你应该在外面初始化它:
public ArrayList<Integer> poli(){
ArrayList<Integer> policy = new ArrayList<Integer>();
while(row < 51 ){
int r = row;
while(column < 1){
policy.add(r);
policy.add(0);
}
column-=1;
row++;
}
return policy;
}
此外,您不需要变量来存储row
。 policy.add(row);
也可以正常使用。
答案 1 :(得分:0)
发现问题。列只减少了1(真的可以使用column--;)这使得它永远循环。在代码中添加了列++,现在它可以工作了。知道这很简单。 工作代码
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);
}
}