gpt4 book ai didi

java - 如何将计数索引的值分配给ArrayList?不是计数索引的对象

转载 作者:行者123 更新时间:2023-12-01 10:51:02 25 4
gpt4 key购买 nike

对于我的项目,我需要一个 ArrayList,它在 do-while-loop 中保存计数索引的值(如果 if 语句变为 true)。循环之后,列表应该打印出所需的各种值。但是,所有值都等于计数索引的最后一个值。

在寻找解决方案(没有成功)的过程中,我发现 ArrayList 只能用于存储对象。这可以以某种方式解释,ArrayList 保存的是对象,而不是想要的值。尽管如此,我的循环需要一个动态列表,其中包含嵌套循环(处理次数超过 500 次)和多个 if 语句,因此需要 ArrayList。

如何解决这个问题?还有其他选择吗?

一个简单的脚本来描述我的问题:

import java.util.ArrayList;

public class test {

public static void main(String[] args) {
// TODO Auto-generated method stub
int i1=0;
int i2=0;
ArrayList<int[]> iArray = new ArrayList<int[]>();
int[] x = new int[2];

do{
i1++;
do{

i2++;

x[0] = i1;
x[1] = i2;

iArray.add(x);

}while(i2<15);
}while(i1<15);

for(int[] i : iArray){
System.out.println("line 1: " + i[0] + " line 2: " + i[1]);
}

}

}

控制台输出:

    line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29
line 1: 15 line 2: 29

提前致谢。

最佳答案

您只创建一个数组,然后多次添加同一数组。删除您的早期声明,并在循环中声明(并初始化)它。比如,

int[] x = {i1, i2};
// x[0] = i1;
// x[1] = i2;
iArray.add(x);

如果没有 x 在一行上,你可以做到这一点,

iArray.add(new int[] {i1, i2});

关于java - 如何将计数索引的值分配给ArrayList?不是计数索引的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33905400/

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