java - 如何将arraylist的多个项目与特定位置的另一个arraylist进行比较?
问题描述
背景:有产品列表页面,我必须获取所有产品名称(包括缺货产品),然后必须验证所有缺货产品到底是什么。
问题:我浏览了所有页面并将产品名称存储在 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]
现在我有另一个列表,其中只有 Out Of Stock 产品
list2
内容是——
[informed bcaa™, instant bcaa cocktail bundle]
我必须确保list1 最后是否以相同的顺序包含所有 list2 项目
解决方案
这个问题本质上是试图验证给定列表是否A
以第二个列表结尾B
。
您可以通过确定 list 的长度,B
从 list 的末尾回溯那么多空格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;
}
推荐阅读
- c# - 如何在 C# 中的 Xamarin android 应用程序中从 google firebase 进行身份验证后获取访问令牌?
- android - ReactNative - Android NoSuchKeyException 致命错误
- java - 无法自省 org.apache.shiro.web.servlet.SimpleCookie 类
- cakephp - 添加可下载链接以在 Cake PHP 网站中下载文件,例如在导航菜单上
- match - NEST 未返回精确搜索的值
- javascript - 如何从浏览器 FETCH 触发浏览器下载?
- regex - 在 number freemaker 模板上添加分隔符
- python-asyncio - 获取 OSError:(地址已在使用中)同时运行在 while 循环中使用 trio-sockets 的函数
- mysql - 从数据库表中显示赔率,就像在博彩网站中一样
- javascript - 倒计时功能不显示 3-2-1 倒计时的最后一个数字