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.
TutorialKart.com