如何迭代2个相同大小的ArrayLists

时间:2016-11-19 15:47:41

标签: java arraylist iterator

我正在创建一个GUI内存游戏,我有一个带有30个图像的arraylist(在特定的图像类中)和一个带有30个jbuttons的图像(在jframe类中)。我想迭代它们并将第一个imageicon添加到第一个jbutton,依此类推。

private static ArrayList<JButton> btnList = new ArrayList<>();
private static ArrayList<ImageIcon> animalArrayList = Images.initAnimalArrayList();

我对Collection.iterator不熟悉,并且很难弄清楚我需要做些什么来设置它。

非常感谢任何见解

1 个答案:

答案 0 :(得分:0)

我建议的答案如下:

int size = btnList.size();
for (int i =0; i < size; i++){
    btnList.get(i).setIcon(animalArrayList.get(i));
}

了解迭代器:

Iterator允许您循环遍历类似于for循环的集合,例如:

Iterator itr = btnList.iterator();
while itr.hasNext(){ // while we have not loop through all elements
    //get object 
    JButton btn = itr.next()
    //do additional action
}

for循环允许您访问btnList数组列表的相同索引位置,并获取获得所需输出的animalArrayList。

size等于btnList.size()的原因是因为我假设必须存在相同数量的按钮和图像。因此,这适用于任何数组列表大小。