code: public static <T> List<T> intersection(List<T> arr1, int start1, int end1, List<T> arr2,
                                             int start2, int end2) {
          if (start1 > end1 || start2 > end2) {
              throw new IllegalArgumentException("起始位置必须小于等于结束位置");
          }
          if (start1 == end1 || start2 == end2) {
              return Collections.emptyList();
          }
  
          List<T> list = new ArrayList<>();
          for (int i = start1; i < end1; i++) {
              int index = arr2.indexOf(arr1.get(i));
              if (index < end2 && index >= start2) {
                  list.add(arr1.get(i));
              }
          }
          return list;
      }
docs: 求两个集合指定区间的交集
  @param arr1 集合1
  @param start1 集合1区间起始位置（包含）
  @param end1 集合1区间结束位置（不包含）
  @param arr2 集合2
  @param start2 集合2区间起始位置（包含）
  @param end2 集合2区间结束位置（不包含）
  @param <T> 集合数据类型
  @return 两个集合指定区间的交集