Java - 如何使用以前已知的元素重新填充arraylist

时间:2012-03-13 23:44:53

标签: java

我有一个由四个元素填充的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

2 个答案:

答案 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次,然后在结束时清除一次