Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Collections indexOfSubList() method in Java with Examples

  • Last Updated : 20 May, 2019

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


    My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!