java数组的arraylists

mbr*_*een 7 java arrays arraylist

我的程序中有四列按钮.分配新按钮时,按钮在列之间移动.而不是声明4个单独的arraylists来存储按钮,有没有办法创建1个arraylists数组,所以我可以简单地通过数组itterate?

我试过了 List<JButton>[] lists = new ArrayList<JButton>[5];

但那不行.我错过了什么?

编辑:

for(int i = 0; i < 5; i++){
            if(choiceList.getSelectedIndex() == i){
                if(btnPersons[nameList.getSelectedIndex()].getX() == column[i]){
                    JOptionPane.showMessageDialog(null, "Error - Name already present in the column.","", 1);
                }else{
                    for(int j = 0; j < 5; j++){
                        if(lists[j].get(i) != null){
                            lists[j].remove(btnPersons[nameList.getSelectedIndex()]);
                        }
                    }
                    lists[i].add(btnPersons[nameList.getSelectedIndex()]);
                    lists[i].get(i).setBounds(column[i], ROWS[i], 125, 20);
                    //reloadLocations();
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

这是我的代码.一旦选择了新列,它会检查按钮所在的列表并将其删除,然后将其添加到新列表中.但我的新问题是使用列表[i]将不再有效.Idk如何使用此声明正确遍历我的arraylists列表:

List<ArrayList<JButton>> lists = new ArrayList<ArrayList<JButton>>(); 
Run Code Online (Sandbox Code Playgroud)

tim*_*ooo 5

您必须保留JButton对象列表的列表:

List<List<JButton>> lists = new ArrayList<List<JButton>>();
// populate (replace with your code)
lists.add(Arrays.asList(new JButton("list 1, button 1"), new JButton("list 1, button 2")));
lists.add(Arrays.asList(new JButton("list 2, button 3"), new JButton("list 2, button 4")));
lists.add(Arrays.asList(new JButton("list 3, button 5"), new JButton("list 3, button 6")));
lists.add(Arrays.asList(new JButton("list 4, button 7"), new JButton("list 4, button 8")));

// iterate
for(List<JButton> subList : lists) {
    for(JButton button : subList) {
        System.out.println(button.getText());
    }
}
Run Code Online (Sandbox Code Playgroud)