Machine-translated by Google. Questions are authored in English.
Top

Discussion

Which one of the following statements about what Iterator.remove requires before it may be called is true?

  • A.A call to next must have happened, and remove may be called only once per element.
  • B.Nothing; remove may be called at any point after the iterator is created.
  • C.A call to hasNext must have returned true immediately beforehand.
  • D.The collection must be unmodifiable, so the iterator controls all changes.

Answer: A

Correct answer: A call to next must have happened, and remove may be called only once per element.

remove deletes the element most recently returned by next, so there must have been such a call and it must not already have been removed; otherwise IllegalStateException is thrown. Using it is the only safe way to delete during iteration - removing through the collection itself invalidates the iterator and produces ConcurrentModificationException on the next step.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.