如何将 ListBuffer 的项与 Scala 中的数组项匹配?
How to match a ListBuffer's items to an Array's item in Scala?
所以我有一个用例,其中我有一个字符串 ListBuffer [我们称它为 'A'],以及一个字符串数组(或者如果它更容易,我们将其作为另一个 ListBuffer)[我们称它为'B']。 A 或 B 中都没有重复项
现在我想这样做:
if (A.isEmpty){
// do something
}
else if (every item of 'A' must be present in 'B'){
// do something else
}
else{
// do something different
}
这应该处理边缘情况,例如:
- B 为空 ['else if' 检查应该失败]
- len(A) < len(B),但是 A 的项目在 B 中 ['else if' 检查应该通过]
- 其他...
在这种情况下,我应该如何编写 else if 块?
慢速版本
A.forall(B.contains)
更快的版本
val bSet = B.to(Set)
A.forall(bSet.contains)
@jwvh 的一个版本可能介于两者之间
a.diff(b).isEmpty
所以我有一个用例,其中我有一个字符串 ListBuffer [我们称它为 'A'],以及一个字符串数组(或者如果它更容易,我们将其作为另一个 ListBuffer)[我们称它为'B']。 A 或 B 中都没有重复项
现在我想这样做:
if (A.isEmpty){
// do something
}
else if (every item of 'A' must be present in 'B'){
// do something else
}
else{
// do something different
}
这应该处理边缘情况,例如:
- B 为空 ['else if' 检查应该失败]
- len(A) < len(B),但是 A 的项目在 B 中 ['else if' 检查应该通过]
- 其他...
在这种情况下,我应该如何编写 else if 块?
慢速版本
A.forall(B.contains)
更快的版本
val bSet = B.to(Set)
A.forall(bSet.contains)
@jwvh 的一个版本可能介于两者之间
a.diff(b).isEmpty