Georgii Dernovyi
Georgii Dernovyi

Reputation: 49

Scala generator from function

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

Answers (1)

om-nom-nom
om-nom-nom

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

Related Questions