背景:有产品列表页面,我必须获取所有产品名称(包括缺货产品),然后必须确认所有缺货产品都在最后。
问题:我已经浏览了所有页面并将产品名称存储在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;
}