import java.util.*;
//------------------------------------------------------------------------------
//Creating, and using Iterators (for List or Set)
//------------------------------------------------------------------------------

public class iterator1 
{
    public static void main(String[] args) 
    {
        ArrayList<String> alist = new ArrayList<String>();

        alist.add("Sunday");
        alist.add("Monday");
        alist.add("Tuesday");
        alist.add("Wednesday");
        alist.add("Thursday");
        alist.add("Friday");
        alist.add("Saturday");
        
        System.out.println(alist);          //print
        System.out.println();
    
        int size = alist.size();            //size
               
//------------------------------------------------------------------------------------------     
        Iterator it = alist.iterator();                 //Iterator-forward only (List, Set)

        System.out.println("Forward using Iterator...");
        while (it.hasNext())
        {
            System.out.println(it.next());
        }
        System.out.println();

//------------------------------------------------------------------------------------------     
        ListIterator lit1 = alist.listIterator();       //listIterator-forward & backward

        System.out.println("Forward using ListIterator...");
        while (lit1.hasNext())
        {
            System.out.println(lit1.next());
        }   
        System.out.println();
        System.out.println(lit1.previous());
        System.out.println(lit1.previous());
        System.out.println();

//------------------------------------------------------------------------------------------     
        ListIterator lit2 = alist.listIterator(size);   //listIterator-starting at the end  

        System.out.println("Backward using ListIterator...");
        while (lit2.hasPrevious())        
        {
            System.out.println(lit2.previous());
        }
        System.out.println();
    }
}