我有一个由四个元素填充的arraylist,其顺序是随机的(它们是从另一个arraylist中随机放置的)。然后我有一个重复10次的for循环,在每次重复结束时我使用clear方法清除arraylist的所有元素。然而,当我开始一个新的重复时,我想用旧的(以前使用过的)元素重新填充我的arraylist,这些元素是前一次重复中列表的成员,这样我就可以再次使用这些元素。我想重复一遍,直到我退出10次重复循环。有没有办法实现这一点?
除了我的问题之外的代码:
ArrayList<String> answerPegs = new ArrayList<String>();
// add element to ArrayList
ArrayList<String> mySecretAnswer = new ArrayList<String>();
for (int n = 4; n > 0; n--)
{
//populate mySecretAnswer with elements from answerPegs
}
ArrayList<String> clone1 = mySecretAnswer;
for (int q = 0; q < 10; q++) {
for (o = 0; o < 4; o++)
{
}
// called clear() method here
} // END OF 10-ROW LOOP
答案 0 :(得分:1)
我建议只提供2个列表 - 保留原始列表的原始副本,然后迭代+清除该列表的副本。
public void doRepetitions(List<Object> original)
{
for( int i=0; i<10; i++ )
{
List<Object> working = new ArrayList<Object>( original );
doStuffWithList(working);
}
}
修改强>:
由于您已发布代码,我可以提供更具体的答案:
您可以将clone
更改为:
ArrayList<String> clone1 = new ArrayList<String>(mySecretAnswer);
然后将其移到你的for循环中:
for (int q = 0; q < 10; q++)
{
ArrayList<String> clone1 = new ArrayList<String>(mySecretAnswer);
// ....
}
答案 1 :(得分:0)
你能否使用嵌套的2个循环,让内循环成为for循环10次,然后在结束时清除一次