将二维数组的索引添加到 Java 中的列表末尾

Add Index of 2-dimensional Array to to the end of List in Java

我正在开发一个小游戏,玩家点击一个按钮,其值来自二维数组。This is how the game looks如果玩家想要恢复他的动作,我想保存玩家的步骤接受了一个列表,当他单击 "revert" 按钮时,列表的最后一项被还原。问题是我不知道如何将二维数组的索引保存到列表中。

我的代码很远,下面是数组

for (int i = 0; i < buttons.length; i++) {
        for (int j = 0; j < buttons[i].length; j++) {
            counter++;
            buttons[i][j] = new JButton("" + counter);

            buttons[i][j].setBackground(Color.white);
            buttons[i][j].addActionListener(new ButtonPress());
            fenster.add(buttons[i][j]);

ActionListener 的代码在这里:

public void actionPerformed(ActionEvent e) {

        amountMoves++;
        moves.setText("Moves: " + amountMoves);

        int x = 0;
        int y = 0;
        for (int i = 0; i < buttons.length; i++) {
            for (int j = 0; j < buttons[i].length; j++) {
                if (((JButton) e.getSource()).equals(buttons[i][j])) {
                    x = i; 
                    y = j;
                    break;
                }
            }
        }
    }

列表不是我的强项,到目前为止我只有这个:

    ArrayList<Integer> steps = new ArrayList<Integer>();

我知道我可以使用 steps.add() 添加一个元素并使用 steps.remove(steps.size() - 1); 删除最后一个元素,但目前仅此而已

非常感谢任何帮助

编辑:在@Johnny Mopp 和@SSP 的帮助下,我想出了该怎么做。首先,我创建了一个 String ArrayList<String> steps = new ArrayList<String>(); 类型的列表(您也可以使用 JButton 类型的列表)并使用 steps.add(buttons[i][j].getText());

将其添加到 Actionlister 中

创建列表列表:-

ArrayList<ArrayList<Integer>> steps = new ArrayList<>();

如果要保存第 2 行和第 2 列数据,请保存如下值:-

steps.get(1).add(1{index of column},2{value to be stored});

如果您是第一次添加元素,您需要像下面这样实例化对象:-

if(steps.get(1) == null){
    steps.get(1) = new ArrayList<>();
}

访问数据

 steps.get(1).get(2);