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

标签 java arraylist

对于我的项目,我需要一个 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/

相关文章:

java - 如何从文本文件中读取ArrayList,但每3行一次

java - 有了坐标,具体区域如何设置?

java - 使用 swipeview 时如何将 Java 文件链接到 UI xml 文件?

java - 每次程序运行时创建一个新的但不同的对象

java - 将默认 JFileChooser 目录设置为 JAR 位置的相对路径

java - Guava:将 List<Optional<T>> 转换为 List<T> 只保留当前值

java - 我想显示数组列表中的元素,而不是哈希码

java - 在 Java 中使用 ArrayList 的二维动态数组

java - 如何在读/写对象 Java 中列表或数组

java - 在Java中创建多种数据类型的数组列表