Java ArrayList subList() Method
The subList() method of the ArrayList class in Java is used to retrieve a portion of an ArrayList between specified indices. When we perform any modifications to the sub list, that will reflect in the original list and vice versa.
Example 1: Here, we use the subList() method to extract a sublist from an ArrayList.
// Java program to demonstrate subList()
// by extracting a portion of the ArrayList
import java.util.ArrayList;
import java.util.List;
public class GFG {
public static void main(String[] args) {
// Creating an ArrayList of flowers
ArrayList<String> l = new ArrayList<>();
l.add("Rose");
l.add("Lotus");
l.add("Lavender");
l.add("Lilly");
l.add("Sunflower");
// Extracting a sublist
List<String> s = l.subList(1, 4);
// Printing the original list and sublist
System.out.println("" + l);
System.out.println("" + s);
}
}
Output
[Rose, Lotus, Lavender, Lilly, Sunflower] [Lotus, Lavender, Lilly]
Syntax of ArrayList subList() Method
public List<E> subList(int fromIndex, int toIndex)
Parameters:
- fromIndex: Starting index (inclusive) of the sublist.
- toIndex: Ending index (exclusive) of the sublist.
Returns Value: It returns a view of the portion of this list between the specified indices.
Exception: This method throws the following Exceptions.
- IndexOutOfBoundsException: If an endpoint index value is out of range (fromIndex > size).
- IllegalArgumentException: If an endpoint indices are out of order (fromIndex > toIndex).
Example 2: Here, we will modify a sublist and will see how the changes reflect in the original list.
// Java program to demonstrate subList()
// by modifying elements in the sublist
import java.util.ArrayList;
import java.util.List;
public class GFG {
public static void main(String[] args) {
// Creating an ArrayList of numbers
ArrayList<Integer> n = new ArrayList<>();
n.add(1);
n.add(2);
n.add(3);
n.add(4);
n.add(5);
// Creating a sublist
List<Integer> s = n.subList(1, 4);
// Modifying the sublist
s.set(0, 9); // Updating the first element in sublist
s.remove(2); // Removing the last element in sublist
System.out.println("Original List After Modification: " + n);
System.out.println("Modified Sublist: " + s);
}
}
Output
Original List After Modification: [1, 9, 3, 5] Modified Sublist: [9, 3]
Explanation: In the above example, we have created the original list starts with 5 elements i.e. [1, 2, 3, 4, 5]. The sublist created using subList(1, 4) contains 3 elements [2, 3, 4]. After modifications, the original list becomes [1, 99, 3, 5], and the sublist becomes [99, 3].
Example 3: Here, we will try to use invalid indices and handle the IndexOutOfBoundsException.
// Java program to demonstrate
// IndexOutOfBoundsException in subList()
import java.util.ArrayList;
public class GFG {
public static void main(String[] args) {
// Creating an ArrayList of names
ArrayList<String> n = new ArrayList<>();
n.add("Sweta");
n.add("Gudly");
try {
// Trying to create a sublist
// with invalid indices
n.subList(1, 5);
} catch (IndexOutOfBoundsException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Output
Error: toIndex = 5
Explanation: In this example, the toIndex exceeds the size of the list.