无法在java中的二维数组中生成动态项

时间:2017-10-31 05:20:03

标签: java arrays

我想在二维数组中添加动态项

现在我有了如下所示的数组,

private static final Object[][] DATA = { { "One", Boolean.TRUE }, { "Two", Boolean.FALSE },
            { "Three", Boolean.TRUE }, { "Four", Boolean.FALSE }, { "Five", Boolean.TRUE }, { "Six", Boolean.FALSE },
            { "Seven", Boolean.TRUE }, { "Eight", Boolean.FALSE }, { "Nine", Boolean.TRUE }, { "Ten", Boolean.FALSE },
            { "One", Boolean.TRUE }, { "Two", Boolean.FALSE }, { "Three", Boolean.TRUE }, { "Four", Boolean.FALSE },
            { "Five", Boolean.TRUE }, { "Six", Boolean.FALSE }, { "Seven", Boolean.TRUE }, { "Eight", Boolean.FALSE },
            { "Nine", Boolean.TRUE }, { "Ten", Boolean.FALSE } };

而不是我想要动态地添加每个项目 {" Nine",Boolean.TRUE} 。你能建议我这样做吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,你需要这个步骤:

创建一个数字数组:

String[] numbers = {"One", "Two", "Three", ...};

循环遍历此数组并检查索引是否使用Boolean.TRUE是否使用Boolean.FALSE

String[] numbers = {"One", "Two", "Three", ...};
Object[][] data = new Object[numbers.length][];
for (int i = 0; i < numbers.length; i++) {
    if (i % 2 == 0) {
        data[i] = new Object[]{numbers[i], Boolean.TRUE};
    } else {
        data[i] = new Object[]{numbers[i], Boolean.FALSE};
    }
}

如果您使用:

System.out.println(Arrays.deepToString(data));

输出结果为:

[[One, true], [Two, false], [Three, true], ...]

但这不是存储值的更好方法,而是可以创建自己的Object,它可以有两个参数String和Boolean:

class MyObject{
   String n;
   Boolean;
   ...
}