Collections indexOfSubList() method in Java with Examples

The indexOfSubList() method of java.util.Collections class is used to return the starting position of the first occurrence of the specified target list within the specified source list, or -1 if there is no such occurrence. More formally, returns the lowest index i such that source.subList(i, i+target.size()).equals(target), or -1 if there is no such index. (Returns -1 if target.size() > source.size().)
This implementation uses the “brute force” technique of scanning over the source list, looking for a match with the target at each location in turn.
Syntax:
public static int indexOfSubList(List source, List target)
Parameters: This method takes following argument as parameter
- source – the list in which to search for the first occurrence of target.
- target – the list to search for as a subList of source.
Return Value: This method returns the starting position of the first occurrence of the specified target list within the specified source list, or -1 if there is no such occurrence.
Below are the examples to illustrate the indexOfSubList() method
Example 1:
// Java program to demonstrate// indexOfSubList() method// for String value import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // creating object of List<String> List<String> arrlistsrc = new ArrayList<String>(); List<String> arrlisttarget = new ArrayList<String>(); // Adding element to arrlistsrc arrlistsrc.add("A"); arrlistsrc.add("B"); arrlistsrc.add("C"); arrlistsrc.add("D"); arrlistsrc.add("E"); // Adding element to arrlisttarget arrlisttarget.add("C"); arrlisttarget.add("D"); arrlisttarget.add("E"); // print the source list System.out.println("Source list: " + arrlistsrc); // print the target list System.out.println("Target list: " + arrlisttarget); // check target list in source list int index = Collections .indexOfSubList(arrlistsrc, arrlisttarget); // print the index System.out.println("Target list starts at index: " + index); } catch (IllegalArgumentException e) { System.out.println("Exception thrown : " + e); } }} |
Source list: [A, B, C, D, E] Target list: [C, D, E] Target list starts at index: 2
Example 2:
// Java program to demonstrate// indexOfSubList() method// for Integer value import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // creating object of List<Integer> List<Integer> arrlistsrc = new ArrayList<Integer>(); List<Integer> arrlisttarget = new ArrayList<Integer>(); // Adding element to arrlistsrc arrlistsrc.add(20); arrlistsrc.add(30); arrlistsrc.add(40); arrlistsrc.add(50); arrlistsrc.add(60); // Adding element to arrlisttarget arrlisttarget.add(40); arrlisttarget.add(50); // print the source list System.out.println("Source list: " + arrlistsrc); // print the target list System.out.println("Target list: " + arrlisttarget); // check target list in source list int index = Collections .indexOfSubList(arrlistsrc, arrlisttarget); // print the index System.out.println("Target list starts at index: " + index); } catch (IllegalArgumentException e) { System.out.println("Exception thrown : " + e); } }} |
Source list: [20, 30, 40, 50, 60] Target list: [40, 50] Target list starts at index: 2



