关于ZAKER 融媒体解决方案 合作 加入

For 循环中的 java.util.ConcurrentModificationExceptio.

CocoaChina 10-21

我正在尝试编写 IM 软件 ,

我想让用户离开对话 , 并告诉他的伴侣他已经离开了…

我更喜欢使用 for 循环而不是 Iterator, 查找所有用户并获取要离开并删除他的用户…像这样:

for ( Clientuser Cu: EIQserver.OnlineusersList ) if ( Cu.ID.equals ( thsisUser.ID ) ) // find the user who ask to leave { Omsg.setBody ( "@@!&$$$$@@@####$$$$" ) ; //code means : clien! ur parter leaves... sendMessage ( Omsg ) ; // sed message to thje partner with that code EIQserver.OnlineusersList.remove ( Cu ) ;// remove the partner EIQserver.COUNTER--;// decrease counter. }

我得到异常:java.util.ConcurrentModificationException

我正在使用迭代器 , 为了摆脱此异常 , 我将其转换为 for, 但是仍然出现相同的异常!

我如何摆脱这个例外?

最佳答案

使用Iterator而不是循环 . 例如:

Iterator<Clientuser> iterator = EIQserver.OnlineusersList.iterator ( ) ;while ( iterator.hasNext ( ) ) { Clientuser next = iterator.next ( ) ; if ( next.ID.equals ( thsisUser.ID ) ) { Omsg.setBody ( "@@!&$$$$@@@####$$$$" ) ; sendMessage ( Omsg ) ; iterator.remove ( ) ;// remove the partner }}

以上内容由"CocoaChina"上传发布 查看原文
相关标签 软件