如何比较scala中的两个迭代器?
目前,我只有 3 种方法来比较 scala 中的两个迭代器(字符串类型):
// 1.
it1 sameElements it2
// 2.
it2.toList == it2.toList
// 3.
def compare(it1:Iterator[String], it2:Iterator[String]) {
while (it1.hasNext) {
if (!it2.hasNext) return false
if (it1.next != it2.next) {
return false
}
}
return !it2.hasNext
}
还有其他好的方法吗?
For now, I have only 3 way to compare two iterators (with String type) in scala:
// 1.
it1 sameElements it2
// 2.
it2.toList == it2.toList
// 3.
def compare(it1:Iterator[String], it2:Iterator[String]) {
while (it1.hasNext) {
if (!it2.hasNext) return false
if (it1.next != it2.next) {
return false
}
}
return !it2.hasNext
}
Is there any other good ways to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会使用 zip:
或者你也可以使用尾递归:
用于
sameElements
的函数,我推荐它,因为它在 API 中使用,我修改了 来源 签名以提高可读性I would use zip:
Or you can also use tail recursion:
The function used for
sameElements
, which I recommend as it is used in the API, I modified the source signature for readability使用 canEqual< /a>:
Use canEqual :