 <p>I got this problem and I think the easier way is the same with the second way that hvgotcodes gave.</p> <blockquote> <p>Or you can copy all the ones you want to keep into a new list as you iterate, and then discard the old list when done.</p> </blockquote> <pre><code>@Test public void testListCur(){ List&lt;String&gt; li=new ArrayList&lt;String&gt;(); for(int i=0;i&lt;10;i++){ li.add("str"+i); } List&lt;String&gt; finalLi = new ArrayList&lt;String&gt;(); for(String st:li){ if(st.equalsIgnoreCase("str3")){ // Do nothing } else { finalLi.add(st); } } System.out.println(finalLi); } </code></pre>