Close

Java Collections - ArrayList.subList() Examples

[Last Updated: Dec 10, 2025]

Java Collections Java Java API 


Class:

java.util.ArrayList

java.lang.Objectjava.lang.Objectjava.util.AbstractCollectionjava.util.AbstractCollectionjava.util.CollectionCollectionjava.util.AbstractListjava.util.AbstractListjava.util.ListListjava.util.ArrayListjava.util.ArrayListjava.util.ListListjava.util.RandomAccessRandomAccessjava.lang.CloneableCloneablejava.io.SerializableSerializableLogicBig

Methods:

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

Returns 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.

This method eliminates the need for explicit range operations (of the sort that commonly exist for arrays). Any operation that expects a list can be used as a range operation by passing a subList view instead of a whole list. For example, the following idiom removes a range of elements from a list:

 list.subList(from, to).clear(); 
Similar idioms may be constructed for indexOf(Object) and lastIndexOf(Object), and all of the algorithms in the Collections class can be applied to a subList.

The semantics of the list returned by this method become undefined if the backing list (i.e., this list) is structurally modified in any way other than via the returned list. (Structural modifications are those that change the size of this list, or otherwise perturb it in such a fashion that iterations in progress may yield incorrect results.)




Examples


package com.logicbig.example.arraylist;

import java.util.*;

public class SubListExample {

public static void main(String... args) {
// Create view of portion of list
ArrayList<String> list = new ArrayList<>(Arrays.asList("A","B","C","D","E"));
List<String> sub = list.subList(1, 4);
System.out.println("Sublist (1,4): " + sub);
sub.set(0, "B-New");
System.out.println("Original after modification: " + list);
}
}

Output

Sublist (1,4): [B, C, D]
Original after modification: [A, B-New, C, D, E]
JDK 25




See Also