我有两个集合:A和b,它们都由等量的字符组成。我拉上拉链。然后我需要对相同的元素进行计数,比如A和A。我需要编写一个谓词,但是我找不到从压缩集合中获取这两个元素的方法。我试过这样做:
val num = A.zip(B).count { it.i: Int, it.j:Int -> it.i == it.j}
:
val num = A.zip(guess).count { it[0] == it[2] }
但是它不起作用。我如何从这些字符子列表中到达两个元素?我查看了Kotlin的官方示例,但只有简单的示例:
val evenCount = numbers.count { it % 2 == 0 }
为了在使用.count
时解构.zip
给出的结果Pair
,您需要将"解构"括号。
a.zip(b).count { (aElement, bElement) -> aElemant == bElement }
你也可以忽略它,直接访问它
a.zip(b).count { it.first == it.second }
如果您想要计算两个列表中的元素对,那么您就非常接近了。通过调用zip
,您将获得Pair
。您可以通过访问first
和second
部分并查看它们是否匹配(使用==
)来计数Pair
对象的结果列表。
// Assumptions...
val a = listOf("A", "B", "D")
val b = listOf("A", "B", "C")
// Count where both elements of the zipped pair match
return a.zip(b).count { it.first == it.second }