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);
}
}
}
Output:
Example 2:
Source list: [A, B, C, D, E] Target list: [C, D, E] Target list starts at index: 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);
}
}
}
Output:
Source list: [20, 30, 40, 50, 60] Target list: [40, 50] Target list starts at index: 2