arrayList,LinkedList的一个问题 大家都知道,arrayList,linkedList都是线程不安全的,就是支持多线程的意思吧。那为什么,我在遍历的同时,一对里面的元素做下修改,就会抛出java.util.ConcurrentModificationException,求指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给个链接参考下http://www.javaeye.com/topic/124788 线程不安全的,就是支持多线程的意思吧。线程不安全!=支持多个线程同时访问。线程不安全的意思,是提醒用户该类同时可能被其他线程访问时会导致问题发生。Java中使用线程不安全的类,需要加synchronized来保证当多个线程同时访问而不发生问题。(这个视具体情况定。如果能保证不会同时访问,则不加同步也行)。明白? 在返回的列表上进行迭代时,用户必须手工在返回的列表上进行同步: List list = Collections.synchronizedList(new ArrayList()); ... synchronized(list) { Iterator i = list.iterator(); // Must be in synchronized block while (i.hasNext()) foo(i.next()); } 不遵从此建议将导致无法确定的行为。 这是迭代的问题 和线程没有关系的吧 具体的可以查看迭代的jdk实现 我记得在迭代做循环的时候 每次都会检查集合中的元素是否被修改 如果被修改了 就会抛出该异常 即使是单线程 也不能在迭代过程中修改元素。 Iterator 遍历时,LinkedList被锁定。只能用Iterator 的方法对LinkedList操作。线程同步。 如何提前结束整个程序? char类型与INT类型 Boolean类里的getBoolean()方法问题。 Java如何能截获某个端口的数据!! 菜鸟问题 为什么编译器找不到javax.servlet包呢 如何在JPanel内画图?我的代码是。。。为什么错误呢? 连接数据库后,执行select为什么会出现"参数不足,期待是1"的错误? 关于DOM4J的问题 为什么这里没有VC++论坛里热闹??? 关于排序 Skype api 接口 Java程序图形界面的显示问题
给个链接参考下
http://www.javaeye.com/topic/124788
...
synchronized(list) {
Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
} 不遵从此建议将导致无法确定的行为。