Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 输出覆盖ArrayList中以前保存的变量_Java_Arrays_Arraylist - Fatal编程技术网

Java 输出覆盖ArrayList中以前保存的变量

Java 输出覆盖ArrayList中以前保存的变量,java,arrays,arraylist,Java,Arrays,Arraylist,这可能对任何试图动态填充ArrayList的人都有好处 Spikes[]是表示游戏板的数组 下面是一个条件语句 if(Spikes[inte1]>=1 && Spikes[inte2]>=1 && Spikes[destination1]>=0 && Spikes[destination2]>=0){ inte1和inte2是表示工件初始位置的int。 destination1和destination2是表示初始位置+掷骰

这可能对任何试图动态填充ArrayList的人都有好处

Spikes[]
是表示游戏板的数组

下面是一个条件语句

if(Spikes[inte1]>=1 && Spikes[inte2]>=1 && Spikes[destination1]>=0 && Spikes[destination2]>=0){
inte1和inte2是表示工件初始位置的int。 destination1和destination2是表示初始位置+掷骰的整数

由于Spikes是一个游戏板,可以通过许多初始位置+骰子掷这么多不同的目的地来满足条件

如果条件满足,可以生成许多可能的移动

我的问题是(如果条件满足),当我将可能的移动保存到ArrayList时,由第一个“可能移动”生成的4个整数将被随后的4个可能移动整数覆盖

因此,我不会将所有可能的移动保存到任何arraylist中,以便以后进行排序

我试过了 将每个变量分别保存到int数组中,以便稍后合并,但仍会覆盖。 尝试创建gameboard对象,但出现错误

输出可以是1D或2D阵列列表

if(Spikes[0]>=1 && Spikes[inte2]>=1 && Spikes[destination1]>=0 &&      
Spikes[destination2]>=0){
c.addMoveToArray(inte1, inte2, destination1, destination2);}

public int addMoveToArray (int inte1, int inte2, int destination1, int 
destination2) {

ArrayList<Integer> plist = new ArrayList<Integer>();
plist.add(inte1); plist.add(inte2); plist.add(destination1);        
plist.add(destination2); 
for (int i=0; i<plist.size();i++) {
System.out.println(plist);
}

Output in console

[5, 0, 8, 10]
[6, 0, 9, 11]
[7, 0, 10, 12]
[8, 0, 11, 13]
if(Spikes[0]>=1&&Spikes[inte2]>=1&&Spikes[destination1]>=0&&
峰值[destination2]>=0){
c、 addMoveToArray(inte1,inte2,destination1,destination2);}
public int addMoveToArray(int inte1,int inte2,int destination1,int
命运2){
ArrayList plist=新的ArrayList();
上列加(inte1);上列加(inte2);上列加(destination1);
plist.add(目的地2);

对于(int i=0;i),您可以考虑创建一个移动类,其中每个实例包含两个“从”索引和两个“to”索引,然后向ALAYList添加移动实例。然后,当您移动时,清除数组列表,以便可以重新启动一组新的可能的移动。
,如果您使用了第一个,则会覆盖上一个。添加更多的代码和准确的错误/例外每次调用addMoveToArray时,您都会创建一个新的ArrayList,然后在打印完该列表的内容后将其丢弃。如果我们要说某个内容是合格的,请花时间生成一个。您的
for
循环将打印每个元素的完整
plist
,即四次。我严重怀疑您展示给我们的输出是否来自您展示给我们的代码。