Reputation: 49
I have producing function from Java API and Java code looks like
val iter = dict.getIndexWordIterator(typeWord)
while (iter.hasNext){
val witer = iter.next().getWordIDs() //witer: List[..] else finish
.. //make common list from all witer
}
I want to write generator for all this code and 'for' requests '<-' inside so
(for(x <- 1 to 1000000; if iter.hasNext) yield iter.next.getWordIDs).flatten
can help but it is ugly and stupid for me. Is it possible to do this smarter?
Upvotes: 1
Views: 438
Reputation: 62835
import scala.collection.JavaConversions._ // so we can treat java iterator as scala one
iter.take(1000000).flatMap(_.getWordIDs).toArray // or to something more suitable to you
The last step is optional -- you can keep your collection lazy and strict it some time later
Upvotes: 1