package org.zalando.problem.spring.web.advice; import java.util.List; final class Lists { Lists() { // package private so we can trick code coverage } /** * Returns the length of the longest trailing partial sublist of the * target list within the specified source list, or 0 if there is no such * occurrence. More formally, returns the length <tt>i</tt> * such that * {@code source.subList(source.size() - i, source.size()).equals(target.subList(target.size() - i, target.size()))}, * or 0 if there is no such index. * * @param source the list in which to search for the longest trailing partial sublist * of <tt>target</tt>. * @param target the list to search for as a trailing partial sublist of <tt>source</tt>. * @return the length of the last occurrence of trailing partial sublist the specified * target list within the specified source list, or 0 if there is no such occurrence. * @since 1.4 */ public static int lengthOfTrailingPartialSubList(final List<?> source, final List<?> target) { final int s = source.size() - 1; final int t = target.size() - 1; int l = 0; while (l <= s && l <= t && source.get(s - l).equals(target.get(t - l))) { l++; } return l; } }