따르면에 http://download.oracle.com/javase/1.4.2/docs/api/java/util/Vector.html빠른
벡터의 iterator 및 listIterator 메소드에 의해 반환되는 반복자 있습니다 르파 : Vector의 구조적 후 언제든지 으로 변경 경우 Iterator 자체가 메서드를 제거하거나 추가하는 것을 제외하면 방법으로 Iterator가 작성되고 은 ConcurrentModificationException을 발생시킵니다. 따라서, 동시 변형 얼굴 는 반복자 미래에 예측할 수없는 시점에 예측할 수없는 위험 동작을 신속하고 완전히 실패보다는 . Vector의 elements 메서드에 의해 이 반환 된 열거 형은 fail-fast가 아닙니다. 그것은 일반적으로, 불가능 비동기의 동시 변경이있는 경우, 확실한 보증을 실시하는 말하기 입니다 반복자의 페이 르파 행동이 보장 할 수 없습니다. fail-fast iterators ConcreteModificationException 을 최선의 노력으로 throw합니다. 따라서 는 가 정확을 기하기 위해서이 예외에 의존하는 프로그램 쓰는 것은 잘못입니다 : 반복자의 페이 르파 스트의 동작은 버그
을 감지 에만 사용되어야한다 날 줄 수 위의 문장의 집합을 검증하는 예제? 벡터의 Iterator 및 ListIterator 메소드의 실패 빠른 동작에 대해서는 여전히 명확하지 않습니다.는 혼란 - Vector의 구조적 반복자의 작성 후에, Iterator 자체의 remove 이외 방법으로, 언제든지 수정 또는 메소드를 추가 할 경우 ((
@ aioobe, 좋은 저녁, 왜 이렇게 벡터의 동작입니까? – Deepak
Iterator는 벡터에 수행 한 작업을 알 수 없기 때문에. Iterator가'int currentIndex'로 구현되고, 이미 통과 한 인덱스에 요소를 추가한다고 가정하십시오. 그런 다음 반복자는'next()'에 대해 동일한 요소를 두 번 반환합니다. 이 fail-fast 메커니즘은 이러한 유형의 오류를 방지합니다. – aioobe
@ aioobe, 도와 주셔서 감사합니다 – Deepak