背景:有产品列表页面,我必须获取所有产品名称(包括缺货产品),然后必须确认所有缺货产品都在最后。

问题:我已经浏览了所有页面并将产品名称存储在ArrayList中。

可以说list1和内容是-

[instant bcaa, vegan bcaa, complete bcaa energy™, branched chain amino acid (bcaa) tablets 1000mg, endure™, branched chain amino acids (bcaa), instant leucine, leucine tablets 1000mg, complete intra-workout™, leucine, bcaa jelly mix, complete hydration drink™, informed bcaa™, instant bcaa cocktail bundle]

现在,我还有另一个列表,其中只有缺货产品
list2和内容是-
[informed bcaa™, instant bcaa cocktail bundle]

我必须确保 list1是否以相同顺序最后包含所有list2项目

最佳答案

这个问题本质上是试图验证给定列表A以第二个列表B结尾。

您可以通过确定列表B的长度,从列表A的末尾回溯很多空格,然后对两个列表进行成对比较来实现此目的:

public static boolean listEndsWith(List<?> A, List<?> B) {
    if (B.size() > A.size()) {
        return false;
    }

    for (int i = A.size() - B.size(), j = 0; i < A.size(); i++, j++) {
        if (!A.get(i).equals(B.get(j))) {
            return false;
        }
    }

    return true;
}

07-26 05:09