Java 集合 indexOfSubList() 方法



描述

Java 集合 indexOfSubList(List<?>, List<?>) 方法用于获取指定目标列表在指定源列表中首次出现的起始位置。

声明

以下是 java.util.Collections.indexOfSubList() 方法的声明。

public static int indexOfSubList(List<?> source, List<?> target)

参数

  • source − 这是要在其中搜索目标首次出现的列表。

  • target − 这是要搜索为 source 的子列表的列表。

返回值

方法调用返回指定目标列表在指定源列表中首次出现的起始位置,如果不存在这样的出现则返回 -1。

异常

获取整数列表的子列表索引示例

以下示例演示了 Java 集合 indexOfSubList(List,List) 方法的使用。我们创建了一个包含一些整数的 List 对象,打印了原始列表。使用 indexOfSubList(List, List) 方法,我们打印了列表子列表的第一个索引。

package com.tutorialspoint;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class CollectionsDemo {

   public static void main(String[] args) {
      List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,3,5,3));

      System.out.println("Initial collection value: " + list);
      // print the first index of sublist.
      int result = Collections.indexOfSubList(list, Arrays.asList(3,5,3));
      System.out.println("3,5,3 are present at: " + result);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Initial collection value: [1, 2, 3, 3, 5, 3]
3,5,3 are present at: 3

获取字符串列表的子列表索引示例

以下示例演示了 Java 集合 indexOfSubList(List,List) 方法的使用。我们创建了一个包含一些字符串的 List 对象,打印了原始列表。使用 indexOfSubList(List, List) 方法,我们打印了列表子列表的第一个索引。

package com.tutorialspoint;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class CollectionsDemo {

   public static void main(String[] args) {
      List<String> list = new ArrayList<>(Arrays.asList("A","B","C","D","C","C"));

      System.out.println("Initial collection value: " + list);
      // print the first index of sublist.
      int result = Collections.indexOfSubList(list, Arrays.asList("C","D","C"));
      System.out.println("C, D, C are present at: " + result);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Initial collection value: [A, B, C, D, C, C]
C, D, C are present at: 2

获取对象列表的子列表索引示例

以下示例演示了 Java 集合 indexOfSubList(List,List) 方法的使用。我们创建了一个包含一些 Student 对象的 List 对象,打印了原始列表。使用 indexOfSubList(List, List) 方法,我们打印了列表子列表的第一个索引。

package com.tutorialspoint;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class CollectionsDemo {

   public static void main(String[] args) {
      List<Student> list = new ArrayList<>(Arrays.asList(new Student(1, "Julie"),
         new Student(2, "Robert"), new Student(3, "Adam"),new Student(1, "Julie")));

      System.out.println("Initial collection value: " + list);
      // print the first index of sublist
      int result = Collections.indexOfSubList(list, Arrays.asList(new Student(3, "Adam"),new Student(1, "Julie")));
      System.out.println("Adam, Julie are present at: " + result);
   }
}
class Student {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   
   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Initial collection value: [[ 1, Julie ], [ 2, Robert ], [ 3, Adam ], [ 1, Julie ]]
Adam, Julie are present at: 2
java_util_collections.htm
广告