gpt4 book ai didi

java - 在 while 循环(或 for 循环)内创建一个数组,然后在外部使用该数组

转载 作者:行者123 更新时间:2023-12-02 12:55:20 26 4
gpt4 key购买 nike

我想要做的事情是使用循环创建一个数组,然后在另一个类中调用该数组,这不会做,也可能永远不会做。解决这个问题最好的方法是什么?我已经寻找了所有解决方案,但它们无法编译。感谢您的帮助。

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 堆空间中出现错误异常 在 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)

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);

}
}

我知道这很简单。我只是看不到解决方案。提前致谢。编辑:更新。发现问题了。 Column 只减少了 1(真的可以使用 column--;),这使得它永远循环。在代码中添加了column++,现在它可以工作了。知道这很简单。

最佳答案

您应该在外部初始化它:

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;

}

此外,您不需要变量来存储policy.add(row); 也能正常工作。

关于java - 在 while 循环(或 for 循环)内创建一个数组,然后在外部使用该数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44443072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com