See where Iterator genuinely helps in Java systems, especially for custom aggregates, trees, graphs, and domain-specific traversal order.
Iterator is most useful when traversal meaning matters.
Iterator is weak when:
List, Set, or stream already expresses the traversal wellUse Iterator when it protects representation and makes traversal semantics explicit.