免責事項: 私は Scala を初めて使用しますが、Java の経験ははるかに豊富です。
あなたのコードの問題next()
は、ループの各反復中に2回呼び出すことです(したがって、2つの要素に作用しています)が、意図は明らかに1つに作用することです。このコードはおそらくあなたのために働くでしょう:
while(result.hasNext) {
val curr = result.next
if(curr.containsField("profilepic")) {
bl += curr.get("profilepic").toString()
}
}
Iterator
セマンティクスに関する次のセクションをお読みください: http://www.scala-lang.org/docu/files/collections-api/collections_43.html
理解しておくべき重要なことは、 を呼び出すたびnext
にIterator
新しい要素が生成されるということです。
val result = Iterator("foo", "bar", "baz")
result.next == "foo" // true
result.next == "bar" // true
あなたの場合、同じ要素を数回操作したいとします。それを変数 (例: ) に格納し、各反復中に正確に 1 回curr
呼び出すようにします。next