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