title: Getting java.util.ConcurentModificationError in collision detecton
body: <p>Here I am getting <code>java.util.ConcurentModificationError</code> in the line <code>for(Candy c2 : candylist) {</code>.
  Can any one tell me whats wrong? I am trying to check the collision detection of several images managed in two linked lists say</p>
  
  <ul>
  <li>1st list of balloon</li>
  <li>2nd list of fire</li>
  </ul>
  
  <p>This code is the collision detection of balloon and fire :</p>
  
  <pre><code>public void collision(final Balloon mb1) {
      ImageView iv11 = mb1.getIv1();
      Rect r1 = new Rect(iv11.getLeft(), iv11.getTop(), iv11.getLeft() + iv11.getWidth(), iv11.getTop()+iv11.getHeight());
      for (Candy c2 : candylist) {
          if (c2 != null) {
              ImageView iv22 = c2.getIv2();
              if (iv22 != null) {
                  Rect r2 = new Rect(iv22.getLeft(), iv22.getTop(), iv22.getLeft() + iv22.getWidth(), iv22.getTop()+iv22.getHeight());
                  if (r1.intersect(r2)) {
                      runOnUiThread(new Runnable() {
                          public void run() {
                              mb1.getTt1().cancel();                  
                              if (mb1.isBursted() == false) {
                                  mb1.setBursted(true);
                                  update(mb1);                            
                              }
                          }
                      });
                  }
              }
          }
      }
  }
  
  public void update(final Balloon mb1) {
      final int bp = balloonList.indexOf(mb1);
  
      if (bp != -1) {
          if (sound == true) {
              mp = MyUtils.playSound(R.raw.bur, Game.this);
          }
  
          final ImageView iv1 = mb1.getIv1(); 
          iv1.setImageResource(R.drawable.negate);
          iv1.setEnabled(false);
          Animation a1 = AnimationUtils.loadAnimation(Game.this, R.anim.fade);
          iv1.startAnimation(a1);
          TimerTask tt = mb1.getTt1();
          tt.cancel();
          TimerTask tt1 = new TimerTask() {
              public void run() {
                  runOnUiThread(new Runnable() {
                      public void run() {
                          balloonList.set(bp, null);
                          al.removeView(iv1);
                      }
                  });
              }
          };
  
          t1.schedule(tt1, 1200);
          missed++;
          score = score-10;
  
          if (music == true) {
              if (mp2 != null) {
                  MyUtils.releaseSound(mp2);
              }
          }
          showscore();
          showExitDialog(score);
      }
  }
  </code></pre>
  
  <p>Stacktrace :</p>
  
  <pre><code>03-08 00:07:14.326: E/AndroidRuntime(586): FATAL EXCEPTION: Timer-1
  03-08 00:07:14.326: E/AndroidRuntime(586): java.util.ConcurrentModificationException
  03-08 00:07:14.326: E/AndroidRuntime(586):  at java.util.LinkedList$LinkIterator.next(LinkedList.java:124)
  03-08 00:07:14.326: E/AndroidRuntime(586):  at bitcream.candyhive.candy.Game.collision(Game.java:609)
  03-08 00:07:14.326: E/AndroidRuntime(586):  at bitcream.candyhive.candy.Game$11.run(Game.java:229)
  03-08 00:07:14.326: E/AndroidRuntime(586):  at java.util.Timer$TimerImpl.run(Timer.java:284)
  </code></pre>