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:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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);
            }
        }
    }

    chevron_right

    
    

    Output:

    Source list: [A, B, C, D, E]
    Target list: [C, D, E]
    Target list starts at index: 2
    

    Example 2:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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);
            }
        }
    }

    chevron_right

    
    

    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 Posts: