被困在Java列表中

时间:2016-10-29 18:08:05

标签: java list arraylist

这是我写的代码的一部分。输出真的让我感到困惑。我觉得代码非常准确。

md5sum

这是我得到的输出:

List<List<Float>> deg_grp = new ArrayList<>();
List<Float> tempo = new ArrayList<>();
int u = 3;
for (int y = 0; y < 3; y++) {
    tempo.clear();
    for (int p = 0; p < u; p++) {
        System.out.println(p);
        tempo.add(p * 0.25f);
    }
    u++;
    System.out.println("--");
    deg_grp.add(tempo);
}
System.out.println(deg_grp);

我真的很困惑,因为我希望输出如下: [[0.0,0.25,0.50],[0.0,0.25,0.50,0.75],[0.0,0.25,0.50,0.75,1.0]]

请帮助我。 在此先感谢:)

2 个答案:

答案 0 :(得分:1)

在第一个循环中初始化速度。清除它不是一种正确的方法。因为你总是使用相同的节奏数组。您自动更改列表的每个元素。您应该检查列表的工作方式

答案 1 :(得分:1)

您总是使用相同的列表。因此,当您清除QMainWindow并在其中添加项目时,您会更改QRect中的每个条目。

在您的第一个for循环中,您应该为其分配一个新列表,而不是清除updateOverlaySize