android - 如何使用 Kotlin 验证两个 arrayList 中的相等性
问题描述
在我的 android 应用程序中,使用 kotlin。我有两个arrayList “productsToBuy”包含要购买的产品列表,“variantArrayList”:包含变体列表。要购买的产品可以有产品或变体,在这里,我想知道要购买的产品列表中的变体 ID。我想获得 Id 或布尔属性作为结果。那么,如何验证这两个数组列表与 ID 之间的相等性。以下代码是我的文章,我知道是一个不正确的代码,但我怎样才能更正它以获得我想要的东西以及为什么不正确
for (i in 0 until variantArrayList.size) {
val tempVariant = StreamSupport.stream(productsToBuy)
.filter { o1 -> o1.id.equals(variantArrayList[i].id) }
.collect(Collectors.toList<PurchaseItemsData>())
if (tempVariant.size != 0) {
variantPurchaseItem = true
break
}
}
解决方案
productsToBuy.map { it.id }.intersect(variantArrayList.map { it.id }).isNotEmpty()
上面的语句将检查是否productsToBuy
包含variantArrayList
基于id
和返回Boolean
。如果您只想获取 id,您可以简单地删除isNotEmpty()
由于我们只确定是否productsToBuy
包含来自 的任何项目variantArrayList
,我们也可以这样尝试。这也将考虑 ids null
。
val variantProduct = productsToBuy.asSequence()
.firstOrNull { product -> variantArrayList.any { product.id == it.id } }
variantPurchaseItem = variantProduct != null
推荐阅读
- sql-server - NodeJs Connection Error querying SQL Server
- php - Post Form initiates Get Request
- ios - After In App Purchase what is the best way to check if a users paid
- android - Titanium android different orientation lock between tablet and phone
- javascript - 为什么这个未赋值的 let 变量不会导致引用错误?
- php - 我应该在我的图像表中存储评论/喜欢/不喜欢的数量吗?
- css - 带有内嵌文本的加载器的 Vuetify 按钮
- python - 将数据从表单中的条件/链式下拉框传递到视图或直接传递到 URL
- javascript - 在 2 个 react-router-v4 项目之间导航
- git - Git警告:无法访问'/home/user/.gitconfig':是一个目录