Java Collections indexOfSubList()方法及实例

Java Collections indexOfSubList()方法及实例

java.util.Collections 类的 indexOfSubList() 方法用于返回指定的源列表中第一次出现的目标列表的起始位置,如果没有这样的出现则返回-1。更正式地说,返回最低的索引i,使source.subList(i, i+target.size()).equals(target),或者如果没有这样的索引,则返回-1。(如果target.size()> source.size(),则返回-1。)

这个实现使用了 “暴力 “技术,在源列表上扫描,依次寻找与目标的匹配位置。

语法

public static int indexOfSubList(List source, List target)

参数: 该方法需要以下参数作为参数

  • source – 列表,用于搜索目标的第一次出现。
  • target – 作为source的subList,要搜索的列表。

返回值:该方法返回指定目标列表在指定源列表中第一次出现的起始位置,如果没有这样的出现,则返回-1。

下面是说明indexOfSubList()方法的例子

示例 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

例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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程