In this tutorial, we will learn about the Java ArrayList subList() method, and learn how to use this method to get a sub list from the given ArrayList, with the help of examples.
Java ArrayList subList() method
ArrayList subList() returns a view of the portion of this ArrayList between the specified fromIndex, inclusive, and toIndex, exclusive.
Syntax
The syntax of subList() method is
ArrayList.subList(int fromIndex, int toIndex)
where
Parameter | Description |
---|---|
fromIndex | The beginning index of sub list in the ArrayList. This index is inclusive of the sub list. |
toIndex | The ending index of sub list in the ArrayList. This index is exclusive of the sub list. |
Returns
The method returns a new List<E>.
1. subList() – Get sublist of the Array
In this example, we will initialize an ArrayList with six string elements. We will get sub list from this ArrayList with fromIndex of 2 and toIndex of 5, using ArrayList subList() method.
Java Program
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Example { public static void main(String[] args) { ArrayList<String> arrayList1 = new ArrayList<String>( Arrays.asList("a", "b", "c", "d", "e", "f")); System.out.println("Original ArrayList : " + arrayList1); int fromIndex = 2; int toIndex = 5; List<String> arrayList2 = arrayList1.subList(fromIndex, toIndex); System.out.println("Sub list is : " + arrayList2); } }
Output
Original ArrayList : [a, b, c, d, e, f] Sub list is : [c, d, e]
2. subList(fromIndex, toIndex) when toIndex > size of ArrayList
toIndex should be less than or equal to the size of ArrayList. Else, subList() throws java.lang.IndexOutOfBoundsException.
Java Program
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Example { public static void main(String[] args) { ArrayList<String> arrayList1 = new ArrayList<String>( Arrays.asList("a", "b", "c", "d", "e", "f")); System.out.println("Original ArrayList : " + arrayList1); int fromIndex = 2; int toIndex = 8; List<String> arrayList2 = arrayList1.subList(fromIndex, toIndex); System.out.println("Sub list is : " + arrayList2); } }
Output
Original ArrayList : [a, b, c, d, e, f] Exception in thread "main" java.lang.IndexOutOfBoundsException: toIndex = 8 at java.base/java.util.AbstractList.subListRangeCheck(Unknown Source) at java.base/java.util.ArrayList.subList(Unknown Source) at Example.main(Example.java:13)
3. subList(fromIndex, toIndex) when toIndex > fromIndex
fromIndex should be less than or equal toIndex. Else, subList() throws java.lang.IllegalArgumentException with the messasge “fromIndex(5) > toIndex(2)”.
Java Program
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Example { public static void main(String[] args) { ArrayList<String> arrayList1 = new ArrayList<String>( Arrays.asList("a", "b", "c", "d", "e", "f")); System.out.println("Original ArrayList : " + arrayList1); int fromIndex = 5; int toIndex = 2; List<String> arrayList2 = arrayList1.subList(fromIndex, toIndex); System.out.println("Sub list is : " + arrayList2); } }
Output
Original ArrayList : [a, b, c, d, e, f] Exception in thread "main" java.lang.IllegalArgumentException: fromIndex(5) > toIndex(2) at java.base/java.util.AbstractList.subListRangeCheck(Unknown Source) at java.base/java.util.ArrayList.subList(Unknown Source) at Example.main(Example.java:13)
4. subList(fromIndex, toIndex) when fromIndex < 0
fromIndex should be greater than or equal to 0. Else, subList() throws java.lang.IndexOutOfBoundsException.
Java Program
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Example { public static void main(String[] args) { ArrayList<String> arrayList1 = new ArrayList<String>( Arrays.asList("a", "b", "c", "d", "e", "f")); System.out.println("Original ArrayList : " + arrayList1); int fromIndex = -3; int toIndex = 2; List<String> arrayList2 = arrayList1.subList(fromIndex, toIndex); System.out.println("Sub list is : " + arrayList2); } }
Output
Original ArrayList : [a, b, c, d, e, f] Exception in thread "main" java.lang.IndexOutOfBoundsException: fromIndex = -3 at java.base/java.util.AbstractList.subListRangeCheck(Unknown Source) at java.base/java.util.ArrayList.subList(Unknown Source) at Example.main(Example.java:13)
Conclusion
In this Java Tutorial, we have learnt the syntax of Java ArrayList subList() method, and also learnt how to use this method with the help of Java example programs.