【发布时间】:2011-09-09 17:56:24
【问题描述】:
ArrayList 的列表迭代器确实实现了 remove 方法,但是,我得到了以下异常:
UnsupportedOperationException at java.util.AbstractList.remove(AbstractList.java:144)
通过此代码:
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<String>上运行? -
我建议您验证
stringList的运行时类型真的 属于java.util.ArrayList 类型。我怀疑你可能有来自某些不同包的Vector或Stack或ArrayList,它们不会覆盖remove(int)。 -
你是如何验证的?您是否直接检查了
removeZeroLengthStringsFrom()内的stringList.getClass()等?
标签: java list iterator arraylist