我有一个JsonNode
的fieldNames的字符串迭代器:
val mm = ... //JsonNode
val xs = mm.fieldNames()
我想循环遍历字段,同时保持计数,如下所示:
when mm.size() {
1 -> myFunction1(xs[0])
2 -> myFunction2(xs[0], xs[1])
3 -> myFunction3(xs[0], xs[1], xs[2])
else -> print("invalid")
}
显然上面的代码不能像xs
那样工作,迭代器不能像这样被索引。我试图看看我是否可以通过mm.toList()
将迭代器转换为列表,但这并不存在。
我如何才能做到这一点?
3条答案
按热度按时间2eafrhcq1#
最简单的方法可能是先将迭代器转换为
Sequence
,然后再转换为List
:实验结果:
b4lqfgs42#
我会跳过转换到序列,因为它只有几行代码。
更新:
但是请记住,追加到
ArrayList
的性能不高,因此对于较长的列表,最好使用以下代码或accepted answer:wsxa1bj13#
可以使用
Iterable { iterator }
将Iterator
转换为Iterable
,然后在Iterable { iterator }
上调用toList()
: