如何使用 Java 在列表中查找子列表

问题描述

如何在列表中查找子列表?

解决方案

以下示例使用 indexOfSubList() 和 lastIndexOfSubList() 检查子列表是否存在于列表中,并查找子列表在列表中的最后一次出现。

import java.util.*;

public class Main {
   public static void main(String[] args) {
      List list = Arrays.asList("one Two three Four five six one three Four".split(" "));
      System.out.println("List :"+list);
      
      List sublist = Arrays.asList("three Four".split(" "));
      System.out.println("SubList :"+sublist);
      System.out.println(
         "indexOfSubList: " + Collections.indexOfSubList(list, sublist));
      
      System.out.println(
         "lastIndexOfSubList: " + Collections.lastIndexOfSubList(list, sublist));
   }
}

结果

上述代码示例将产生以下结果。

List :[one, Two, three, Four, five, six, one, three, Four]
SubList :[three, Four]
indexOfSubList: 2
lastIndexOfSubList: 7
java_collections.html