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
