title: UnsupportedOperationException in AbstractList.remove() when operating on ArrayList
body: <p><code>ArrayList</code>'s list iterator does implement the remove method, however, I get the following  exception thrown:</p>
  
  <pre><code>UnsupportedOperationException at java.util.AbstractList.remove(AbstractList.java:144)
  </code></pre>
  
  <p>By this code:</p>
  
  <pre><code>protected void removeZeroLengthStringsFrom(List&lt;String&gt; stringList)
  {
      ListIterator&lt;String&gt; iter = stringList.listIterator();
      String s;
      while (iter.hasNext())
      {
          s = iter.next();
          if (s.length() == 0)
          {
              iter.remove();
          }
      }
  }
  </code></pre>
  
  <p>What am I missing here? I have verified that the <code>List&lt;String&gt;</code> I am passing in are indeed <code>ArrayList&lt;String&gt;</code>.</p>
  
  <p>Thanks!</p>