HOME C C++ PYTHON JAVA HTML CSS JAVASCRIPT BOOTSTRAP JQUERY REACT PHP SQL AJAX JSON DATA SCIENCE AI

Java Iterator

An Iterator is an object that can be used to loop through collections, like ArrayList and HashSet. It is called an "iterator" because "iterating" is the technical term for looping.

To use an Iterator, you must import it from the java.util package

Getting an Iterator

The iterator() method can be used to get an Iterator for any collection:



Create a HashSet object called cars that will store strings:

Example
                
            
  // Import the ArrayList class and the Iterator class
    import java.util.ArrayList;
    import java.util.Iterator;
    
    public class Main {
      public static void main(String[] args) {
    
        // Make a collection
        ArrayList cars = new ArrayList();
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");
    
        // Get the iterator
        Iterator it =  cars.iterator();
    
        // Print the first item
        System.out.println( it.next());
      }
    }
             


Looping Through a Collection

To loop through a collection, use the hasNext() and next() methods of the Iterator:

Example
  while(it.hasNext()) {
  System.out.println(it.next());
    }
                 

Removing Items from a Collection

Iterators are designed to easily change the collections that they loop through. The remove() method can remove items from a collection while looping.



Use an iterator to remove numbers less than 10 from a collection:

Example
              
            
  import java.util.ArrayList;
    import java.util.Iterator;
    
    public class Main {
      public static void main(String[] args) {
        ArrayList numbers = new ArrayList();
        numbers.add(12);
        numbers.add(8);
        numbers.add(2);
        numbers.add(23);
        Iterator it = numbers.iterator();
        while(it.hasNext()) {
          Integer i = it.next();
          if(i < 10) {
            it.remove();
          }
        }
        System.out.println(numbers);
      }
    }