Я знаю, что итераторы failfast проверяют ConcurrentModificationException на основе наилучших усилий. Почему методы, такие как hasnext или hasPrevious, не проверяют на ConcurrentModificationException и бросают его ???Почему doesnt hasnext, hasprevious и т. Д. Методы проверки Iterator или listIterator для ConcurrentModificationException
Следующий код работает хорошо для точной причины, что эти методы не проверены на CME, хотя это было конструктивно доработан
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> lilong = new ArrayList<String>();
lilong.add("Queen");
for(Iterator<String> iter =lilong.iterator();iter.hasNext();)
{
System.out.println(iter.next());
lilong.add("King");
lilong.remove(0);
lilong.add("Star");
lilong.remove(0);
lilong.add("Sun");
lilong.remove(0);
lilong.add("Polar Bear");
lilong.clear();
lilong.add("There you go");
}
System.out.println("size="+ lilong.size()+"##element##"+lilong.iterator().next());
}
Я не вижу здесь итераторов. – Maroun
Итератор скрыт в каждом утверждении. – Kayaman
@ Kayaman Я имею в виду ['iterator()'] (http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#iterator()). – Maroun