Core java - Advance Topics
  • Welcome
  • Schedule
  • 1) Exception Handling
    • 1) Introduction to Exception Handling
    • 2) Categories of Exceptions
    • 3) Creating a method that throws an exception
    • 4) Creating Custom Exception Classes
    • 5)What happens when an exception is thrown?
      • 5.1) Creating try-catch-finally blocks
      • 5.2) Using a method that throws a checked exception
      • 5.3) Using a method that throws a runtime exception
      • 5.4) Using a method that throws an error
      • 5.5) Will a finally block execute even if the catch block defines a return statement?
      • 5.6) What happens if both a catch and a finally block define return statement?
      • 5.7) What happens if a finally block modifies the value returned from a catch block?
      • 5.8) Can a try block be followed only by a finally block?
      • 5.9) Does the order of the exceptions caught in the catch blocks matter?
      • 5.10) Can I rethrow an exception or the error I catch?
      • 5.11) Can I declare my methods to throw a checked exception instead of handling it?
      • 5.12) I can create nested loops, so can I create nested try-catch blocks too?
      • 5.13) Should I handle errors?
    • 6) Best Practices
    • 7) Cheat Sheet
    • 8) Problems
  • 2) Wrapper Classes and Enums
    • 2.1) Creating objects of the wrapper classes
    • Enums
  • 3) Inner Classes
    • 3.1) Static nested class (also called static inner class)
    • 3.2) Inner class (also called member class)
    • 3.3) Anonymous inner class
    • 3.4) Method local inner classes
    • CheatSheet
  • 4) Generics
    • Multiple Type parameters in Generic classes
    • Inheritance using Generics
    • Generic interfaces
    • Generic Methods
    • Bounded type parameters
    • Applications
  • 5) Equals and Hashcode
    • Problems
  • CompareTo method overview
  • Basic DS
    • 1) Simple Array List
    • 2) Simple HashMap
  • 5) Collections Framework - Part 1
    • Introducing the collections framework
    • Working with the Collection interface
      • The core Collection interface
      • Methods of the Collection interface
    • Creating and using List, Set, and Deque implementations
      • List interface and its implementations
      • Iterators
      • Sorting List using custom sorting technique
      • Comparable Interface
      • Custom Sorting using comparator
      • ArrayList - Examples and practice problems
    • Stack
    • Linked List
    • LinkedList Operations
  • 6) Collections Framework - Part 2
    • Sets
      • Set Types
      • Array to Set (vice versa)
    • Maps
    • TreeMap
    • Autoboxing And Unboxing
  • Collections Framework - Part 3
    • Basics : DS , Number System
    • Internal Working
      • HashMap
      • HashSet
  • 7) Reflection API
  • 8) Annotations
  • 9) Reading Input From Various Sources
    • File Handling
    • Reading From Xml
    • Reading From JSON
  • 10) Multi-threading (Concurrency)
    • Protect shared data
    • Thread-safe access to shared data
  • 11) Design Patterns
    • Singleton
    • DI
  • 12) Internal Working of JVM
  • 13) Garbage Collection
  • 14) More on Strings (Buffer and Builder)
  • 15) Cloning and Immutable Class
    • 16) Serialization And Deserialization
    • Untitled
  • JAVA 8
    • Interface Changes
    • Lambda
    • Method Ref
    • Optional
    • Streams
    • Predicates
  • Practice Tests
    • Test - Collections
    • OOPS
    • S-OOPS
Powered by GitBook
On this page
  • How to use Iterator in Java?
  • ListIterator

Was this helpful?

  1. 5) Collections Framework - Part 1
  2. Creating and using List, Set, and Deque implementations

Iterators

How to use Iterator in Java?

‘Iterator’ is an interface which belongs to collection framework. It allows us to traverse the collection, access the data element and remove the data elements of the collection. java.util package has public interface Iterator and contains three methods:

  1. boolean hasNext(): It returns true if Iterator has more element to iterate.

  2. Object next(): It returns the next element in the collection until the hasNext()method return true. This method throws ‘NoSuchElementException’ if there is no next element.

  3. void remove(): It removes the current element in the collection. This method throws ‘IllegalStateException’ if this function is called before next( ) is invoked.

// Java code to illustrate the use of iterator 
import java.util.ArrayList;
import java.util.Iterator;

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

		coutryList.add("India");
		coutryList.add("Pakistan");
		coutryList.add("Sri Lanka");
		coutryList.add("Dubai");

		// Iterator to traverse the list
		Iterator iterator = coutryList.iterator();

		System.out.println("Countries : ");

		while (iterator.hasNext()) {
			System.out.print(iterator.next() + " ,");
		}

		System.out.println();
	}
}

Output:

Countries : 
India ,Pakistan ,Sri Lanka ,Dubai

ListIterator

‘ListIterator’ in Java is an Iterator which allows users to traverse Collection in both direction. It contains the following methods:

  1. void add(Object object): It inserts object immediately before the element that is returned by the next( ) function.

  2. boolean hasNext( ): It returns true if the list has a next element.

  3. boolean hasPrevious( ): It returns true if the list has a previous element.

  4. Object next( ): It returns the next element of the list. It throws ‘NoSuchElementException’ if there is no next element in the list.

  5. Object previous( ): It returns the previous element of the list. It throws ‘NoSuchElementException’ if there is no previous element.

  6. void remove( ): It removes the current element from the list. It throws ‘IllegalStateException’ if this function is called before next( ) or previous( ) is invoked.


// Java code to illustrate the use of ListIterator 
import java.util.ArrayList;
import java.util.ListIterator;

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

		list.add("A");
		list.add("B");
		list.add("C");
		list.add("D");
		list.add("E");

		// ListIterator to traverse the list
		ListIterator iterator = list.listIterator();

		// Traversing the list in forward direction
		System.out.println("Displaying list elements in forward direction : ");

		while (iterator.hasNext()) {
			System.out.print(iterator.next() + " ");
		}

		System.out.println();

		// Traversing the list in backward direction
		System.out.println("Displaying list elements in backward direction : ");

		while (iterator.hasPrevious()) {
			System.out.print(iterator.previous() + " ");
		}

		System.out.println();
	}
}

Output:

Displaying list elements in forward direction : 
A B C D E 
Displaying list elements in backward direction : 
E D C B A 
PreviousList interface and its implementationsNextSorting List using custom sorting technique

Last updated 6 years ago

Was this helpful?