小编Ken*_*old的帖子

更改下一个元素时,ArrayList/List 中的 Java 前一个元素被覆盖

我对Java有点陌生。在下面的 forLoop 中,我循环遍历 arraylist 的元素,并尝试更改位置对象。当 forLoop 完成时,所有元素的位置等于最后一个元素中的值。我对此进行了调试,但可以弄清楚为什么会发生这种情况。

编辑:下面的函数是我初始化和填充选项的地方。它还包含为每个选项设置位置的逻辑。

protected void InitializeOptions() {
    options = new ArrayList<Button>();
    options.add(new Button("button.png", "Quick Fire"));
    options.add(new Button("button.png", "20 Questions"));
    options.add(new Button("button.png", "Decisions! Decisions!"));
    options.add(new Button("button.png", "OMG"));

    for(int i = 0; i < OPTIONCOUNT; ++i) {
        options.get(i).SetPosition(i*35, i*35);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的对象元素被声明为一个通用的 Button 对象列表,如下所示。我不确定这是否有所作为。

List<Button> options = new ArrayList<Button>();
Run Code Online (Sandbox Code Playgroud)

编辑:我有一个按钮类,它有两个重要的对象:PositionedTexture 背景和 PositionedText 文本。这些对象中的每一个都有一个用于位置的 Vector2。每个类的代码如下

public class PositionedTexture {
    public Texture Texture;
    public Vector2 Position;

    public PositionedTexture(String texturePath) {
        Texture = new Texture(Gdx.files.internal(texturePath));
        Position = Vector2.Zero;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

java list arraylist

4
推荐指数
1
解决办法
814
查看次数

标签 统计

arraylist ×1

java ×1

list ×1