title: How can I make a copy of an iterator in Java?
body: <p>We have a list of elements and have a very simplistic collision detection where we check every object against every other object.</p>
  
  <p>The check is commutative, so to avoid repeating it twice, we would do this in C++:</p>
  
  <pre><code>for (list&lt;Object&gt;::iterator it0 = list.begin(); it0 != list.end(); ++it0)
  {
      for (list&lt;Object&gt;::iterator it1 = it0; it1 != list.end(); ++it1)
      {
          Test(*it0, *it1);
      }
  }
  </code></pre>
  
  <p>The key bit here is the copy</p>
  
  <pre><code>it1 = it0
  </code></pre>
  
  <p>How would you write this in Java?</p>