Skip to content
Related Articles

Related Articles

AbstractList subList() method in Java with Examples
  • Last Updated : 22 Aug, 2019

The subList() method of java.util.AbstractList class is used to return a view of the portion of this list between the specified fromIndex, inclusive, and toIndex, exclusive. (If fromIndex and toIndex are equal, the returned list is empty.)

The returned list is backed by this list, so non-structural changes in the returned list are reflected in this list, and vice-versa. The returned list supports all of the optional list operations.

Syntax:

public List<E> subList(int fromIndex, int toIndex)

Parameters: This method takes the following argument as a parameter.

  • fromIndex: low endpoint (inclusive) of the subList
  • toIndex: high endpoint (exclusive) of the subList

Returns Value: This method returns a view of the specified range within this list.



Exception: This method throws the following Exception.

  • IndexOutOfBoundsException: if an endpoint index value is out of range (fromIndex size)
  • IllegalArgumentException: if the endpoint indices are out of order (fromIndex > toIndex)

Below are the examples to illustrate the subList() method:

Example 1:




// Java program to demonstrate
// subList() method for String value
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
  
        try {
  
            // Creating object of AbstractList<Integer>
            AbstractList<String>
                arrlist = new ArrayList<String>();
  
            // Populating arrlist1
            arrlist.add("A");
            arrlist.add("B");
            arrlist.add("C");
            arrlist.add("D");
            arrlist.add("E");
  
            // print arrlist
            System.out.println("Original AbstractList: "
                               + arrlist);
  
            // getting the subList
            // using subList() method
            List<String> arrlist2 = arrlist.subList(2, 4);
  
            // print the subList
            System.out.println("Sublist of AbstractList: "
                               + arrlist2);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println(e);
        }
  
        catch (IllegalArgumentException e) {
            System.out.println(e);
        }
    }
}


Output:

Original AbstractList: [A, B, C, D, E]
Sublist of AbstractList: [C, D]

Example 2: For IndexOutOfBoundsException




// Java program to demonstrate
// subList() method for IndexOutOfBoundsException
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
  
        try {
  
            // Creating object of AbstractList<Integer>
            AbstractList<String>
                arrlist = new ArrayList<String>();
  
            // Populating arrlist1
            arrlist.add("A");
            arrlist.add("B");
            arrlist.add("C");
            arrlist.add("D");
            arrlist.add("E");
  
            // print arrlist
            System.out.println("Original AbstractList: "
                               + arrlist);
  
            // getting the subList
            // using subList() method
            System.out.println("\nEnd index value is out of range");
            List<String> arrlist2 = arrlist.subList(2, 7);
  
            // print the subList
            System.out.println("Sublist of AbstractList: "
                               + arrlist2);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println(e);
        }
  
        catch (IllegalArgumentException e) {
            System.out.println(e);
        }
    }
}


Output:

Original AbstractList: [A, B, C, D, E]

End index value is out of range
java.lang.IndexOutOfBoundsException: toIndex = 7

Example 3: For IllegalArgumentException




// Java program to demonstrate
// subList() method for IllegalArgumentException
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
  
        try {
  
            // Creating object of AbstractList<Integer>
            AbstractList<String>
                arrlist = new ArrayList<String>();
  
            // Populating arrlist1
            arrlist.add("A");
            arrlist.add("B");
            arrlist.add("C");
            arrlist.add("D");
            arrlist.add("E");
  
            // print arrlist
            System.out.println("Original AbstractList: "
                               + arrlist);
  
            // getting the subList
            // using subList() method
            System.out.println("\nEndpoint indices "
                               + "are out of order"
                               + " (fromIndex > toIndex)");
            List<String> arrlist2 = arrlist.subList(7, 2);
  
            // print the subList
            System.out.println("Sublist of AbstractList: "
                               + arrlist2);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println(e);
        }
  
        catch (IllegalArgumentException e) {
            System.out.println(e);
        }
    }
}


Output:

Original AbstractList: [A, B, C, D, E]

Endpoint indices are out of order (fromIndex > toIndex)
java.lang.IllegalArgumentException: fromIndex(7) > toIndex(2)

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.

My Personal Notes arrow_drop_up
Recommended Articles
Page :