ArrayList
的列表迭代器確實實現了remove方法,但是我得到以下異常拋出: UnsupportedOperationException java.util.AbstractList.remove(AbstractList.java:144)AbstractList.remove()在ArrayList上操作時UnsupportedOperationException
這段代碼:
protected void removeZeroLengthStringsFrom(List<String> stringList)
{
ListIterator<String> iter = stringList.listIterator();
String s;
while (iter.hasNext())
{
s = iter.next();
if (s.length() == 0)
{
iter.remove();
}
}
}
缺少什麼我在這裏?我已經證實我通過的List<String>
確實是ArrayList<String>
。
謝謝!
是不止一個線程在同一個'List'上運行? –
2011-06-07 02:42:25
我建議你驗證'stringList'的運行時類型是_really_類型的java.util.ArrayList。我懷疑你可能有一個'Vector'或'Stack'或'ArrayList'來自一些不會覆蓋'remove(int)'的包。 – 2011-06-07 02:55:44
你是如何驗證它的?你是否直接檢查'removeZeroLengthStringsFrom()'內的'stringList.getClass()'等等? – QuantumMechanic 2011-06-07 02:56:16