• java语言特性之一


    package java.util.Collections;

    public static int indexOfSubList(List<?> source, List<?> target) {
    int sourceSize = source.size();
    int targetSize = target.size();
    int maxCandidate = sourceSize - targetSize;

    if (sourceSize < INDEXOFSUBLIST_THRESHOLD ||
    (source instanceof RandomAccess&&target instanceof RandomAccess)) {
    nextCand:
    for (int candidate = 0; candidate <= maxCandidate; candidate++) {
    for (int i=0, j=candidate; i<targetSize; i++, j++)
    if (!eq(target.get(i), source.get(j)))
    continue nextCand; // Element mismatch, try next cand
    return candidate; // All elements of candidate matched target
    }
    } else { // Iterator version of above algorithm
    ListIterator<?> si = source.listIterator();
    nextCand:
    for (int candidate = 0; candidate <= maxCandidate; candidate++) {
    ListIterator<?> ti = target.listIterator();
    for (int i=0; i<targetSize; i++) {
    if (!eq(ti.next(), si.next())) {
    // Back up source iterator to next candidate
    for (int j=0; j<i; j++)
    si.previous();
    continue nextCand;
    }
    }
    return candidate;
    }
    }
    return -1; // No candidate matched the target }

  • 相关阅读:
    Tips:数据的单位
    PHP面向对象三大特性③
    PHP面向对象三大特性②
    PHP面向对象三大特性①
    PHP-初识面向对象
    C# 基础·算法篇
    C# 基础·常见面试
    C# 特殊处理使用方法
    C# 第三方组件使用
    JS 插件使用
  • 原文地址:https://www.cnblogs.com/adolfmc/p/3821736.html
Copyright © 2020-2023  润新知