Skip to content
Related Articles

Related Articles

Improve Article

Iterator vs Collection in Java

  • Difficulty Level : Hard
  • Last Updated : 16 Sep, 2021

Iterator and Collection, both has helped and comforted the programmers at many a times. But there usage and application has a very wide difference. 

1. Iterator 

  • Declaration 
public interface Iterator

Type Parameters:
E - the type of elements returned by this iterator
  • Iterators are used in Collection framework in Java to retrieve elements one by one. 
  • Method Summary 
Modifier and TypeMethodDescription
default voidforEachRemaining(Consumer<? super E> action)Performs the given action for each remaining element until all elements have been processed or the action throws an exception.
booleanhasNext()Returns true if the iteration has more elements.
Enext()Returns the next element in the iteration.
default voidremove()Removes from the underlying collection the last element returned by this iterator (optional operation).

2. Collection 

  • Declaration: 
public interface Collection<E> extends Iterable<E>

Type Parameters:
E - the type of elements returned by this iterator
  • A Collection is a group of individual objects represented as a single unit. Java provides Collection Framework which defines several classes and interfaces to represent a group of objects as a single unit. 
  • Method Summary 
Modifier and TypeMethodDescription
booleanadd(E e)Ensures that this collection contains the specified element (optional operation).
booleanaddAll(Collection<? extends E> c)Adds all of the elements in the specified collection to this collection (optional operation).
voidclear()Removes all of the elements from this collection (optional operation).
booleancontains(Object o)Returns true if this collection contains the specified element.
booleancontainsAll(Collection<?> c)Returns true if this collection contains all of the elements in the specified collection.
booleanequals(Object o)Compares the specified object with this collection for equality.
inthashCode()Returns the hash code value for this collection.
booleanisEmpty()Returns true if this collection contains no elements.
Iterator<E>iterator()Returns an iterator over the elements in this collection.
default Stream<E>parallelStream()Returns a possibly parallel Stream with this collection as its source.
booleanremove(Object o)Removes a single instance of the specified element from this collection, if it is present (optional operation).
booleanremoveAll(Collection<?> c)Removes all of this collection’s elements that are also contained in the specified collection (optional operation).
default booleanremoveIf(Predicate<? super E> filter)Removes all of the elements of this collection that satisfy the given predicate.
booleanretainAll(Collection<?> c)Retains only the elements in this collection that are contained in the specified collection (optional operation).
intsize()Returns the number of elements in this collection.
default Spliterator<E>spliterator()Creates a Spliterator over the elements in this collection.
default Stream<E>stream()Returns a sequential Stream with this collection as its source.
Object[]toArray()Returns an array containing all of the elements in this collection.
T[]toArray(T[] a)Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array.

Iterator Vs. Collection  

  • Iterator can only move to next() element or remove() an element. 
    However Collection can add(), iterate, remove() or clear() the elements of the collection. 
  • Iterator provides a better speed than Collections, as the Iterator interface has limited number of operations. 
  • java.sql.SQLException extends Iterable. Hence it allows the caller to safely iterate over causes of SQLException. 
    Using a collection, in this case, would be expensive because, in a chain of n exceptions, use of a collection in the SQLException interface would potentially require the construction of O(n^2) elements. 
    However, use of Iterable provides O(n) access to the exception chain. 
     

 

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :