刚开始接触java时很长一段时间, 总觉得java链表的删除操作自己写的有bug。
fail-fast 机制是java集合(Collection)中的一种错误机制。这种设计模式原则是与其留下隐患,不如最初就直接拒绝。这就好比有时我们做人一样,有时需要干脆的拒绝他人。...
分类:
编程语言 时间:
2014-12-02 09:02:45
阅读次数:
134
LinkedList实现了List和Deque接口,其中Deque是一个双端队列,可以在头部和尾部两端添加和删除元素,因此LinkedList既可以当作先进先出的队列,也可以当作后进先出的栈。
LinkedList采用双向链表方式实现,因此插入、删除元素效率比较高,但不支持随机访问。
多线程环境下LinkedList不能保证线程安全,因此对其结构修改的操作应当程序员来保证线程安全,其迭代器支持fail-fast,迭代过程中试图发现是否发生修改,若修改了容器则抛出ConcurrentModificationE...
分类:
其他好文 时间:
2014-11-04 21:14:20
阅读次数:
338
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList:注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错误的做法:迭代器的快速失败行为应该仅...
分类:
编程语言 时间:
2014-07-27 11:29:52
阅读次数:
313