Test your Programming knowledge

50% users failed to get the best score. It's your turn to test now.
Questions curated by the expert mentors at codzify.com

Start Quiz

Article

Iterators in Java from scratch

2 mins 51 sec read

Java Iterator is used to iterate through all the elements in the List. An Iterator is used to go through each element of Collections in Java easily. Let's continue with the example we followed in ArrayList tutorial.

The Methods Declared by Iterator

Sr.No. Method & Description
1

boolean hasNext( )

Returns true if there are more elements. Otherwise, returns false.

2

Object next( )

Returns the next element. Throws NoSuchElementException if there is not a next element.

3

void remove( )

Removes the current element. Throws IllegalStateException if an attempt is

made to call remove( ) that is not preceded by a call to next( ).

Example

In this example, we created two Strings array named things & more things. Two Lists named list1 & list2. Task this program will perform is firstly it prints all the list1 elements then it checks list2 whether list2 contains list1 elements and if yes remove them from list1 and print all final list1 using Iterator.

import java.util.*;
public class JavaCollectionDemo {
  
public static void main(String[] args)
{

//String array
String[] things = {"eggs" , "hats" , 
"laser" , "pie"};

// Define an empty ArrayList 
List list1 =  new ArrayList();

// Add array items to list1
    for(String x: things)
    {
    list1.add(x);
    }


// Another String array 
String[] morethings = {"eggs" , "hats"};

// Define a second empty ArrayList 
List list2 =  new ArrayList();

// Add array items to list2
    for(String x: morethings)
    {
     list2.add(x);
    }

Print list1 elements 
     for (int i = 0; i// Call edit List Function to check
 whether list1 contains list2 items and if yes
 remove them from list1.
     editList(list1, list2);
     System.out.println();

// Display Final List1 elements
    for (int i = 0; i// Function to check whether list1 contains 
list2 items and if yes remove them from list1.
public static void editList(Collection l1 , Collection l2)
{
 Iterator iter = l1.iterator(); 
 while(iter.hasNext())
 {
   if(l2.contains(iter.next()))
   {
     iter.remove();
     
   }   
 }
}
}

Output

eggs   hats  laser   pie   
laser   pie

editList method : Firstly we created an iterator object iter. We iterated through list1 one by one and checked whether list2 contains the elements of list1 and if yes remove it.

Recommended Articles

Did you found this article helpful?

Try to execute what you have learnt

Easy to use online data structure compiler where you can execute the programs in your favourite programming language.
(C, C++, Python)

Open Compiler

HTML, CSS and Javascript Real time Web Editor

Execute your HTML, CSS and javascript code in real time with the web editor
(HTML, CSS, Bootstrap, Javascript)

Open Web Editor