关于用ListIterator遍历,修改,删除ArrayList的同步问题用ListIterator来遍历,修改,删除一个给定的ArrayList,会出现ConcurrentModificationException,就是说ListIterator的结构是第一次运行ArrayListlist.iterator()的时候确定下来的,以后如果remove了ArrayList的item,会出现ConcurrentModificationException,请问如何解决这个问题?code as following:
-----------------------
ListIterator itr = arrayList.listIterator();
while (itr.hasNext())
{
//do something
if (.....)
{
itr.remove();
}
}
这段code会有潜在的ConcurrentModificationException,原因就是我上述说的问题,ListIterator的结构不会因ArrayList而动态变化,请问大家有什么解决方案没有,多谢了
-----------------------
ListIterator itr = arrayList.listIterator();
while (itr.hasNext())
{
//do something
if (.....)
{
itr.remove();
}
}
这段code会有潜在的ConcurrentModificationException,原因就是我上述说的问题,ListIterator的结构不会因ArrayList而动态变化,请问大家有什么解决方案没有,多谢了
解决方案 »
- java 界面问题
- 影院售票系统
- 通过System.currentTimeMillis()获得当前年份和月份
- java发邮件遇到的问题
- 我有一个JFrame,下面有很多JPanel,各个panel都有几个JTextField,JTextArea,我想让所有的JTextField和JTextArea都不可编辑,怎么办?
- 在xp下装了sql server 2000,该怎样连接数据库呢?
- 从数据库中用rs.getObject("aaa")取字段信息时报错,aaa 为 text字段
- 求一个算法,需要得到想要的时间
- 为什么new String(str.getBytes("shift_jis"),"UTF-8")解决不了乱码的问题呢? (问题再问)
- 怎样查看第三包的API函数
- 重定向恢复,在那里执行这些恢复语句?新手啊
- 请教MyEclipse的500错误问题?
如果要先修改arrayList,就在修改之后再运行ArrayListlist.iterator(),
如果想运行的时候修改arrayList,就对ListIterator进行操作,arrayList会跟着同步变化,
也就是说,一旦ListIterator确定下来了,就不要改变arrayList的状态了,只需改变ListIterator就能达到目的
ListIterator itr = arrayList.listIterator();
while (itr.hasNext())
{
//do something
if (.....)
{
itr.remove();
}
}
}
public static void printList(List mylist)//自定义方法
{
System.out.println("正序遍历链表");
ListIterator interator=mylist.listIterator();
while(interator.hasNext())
System.out.print("\t"+interator.next());
System.out.println();
}
帮看看 哈哈!
是内存地址吧?!