0

私はJava APIから関数を生成しており、Javaコードは次のようになります

val iter = dict.getIndexWordIterator(typeWord)

while (iter.hasNext){ 
    val witer = iter.next().getWordIDs() //witer: List[..] else finish
    .. //make common list from all  witer
}

このすべてのコードと 'for' リクエスト '<-' の中にジェネレーターを書きたいので

(for(x <- 1 to 1000000; if iter.hasNext) yield iter.next.getWordIDs).flatten

助けることができますが、それは私にとって醜くてばかげています。これをより賢く行うことは可能ですか?

4

1 に答える 1

0
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

最後のステップはオプションです。コレクションを遅延したままにし、後で厳密にすることができます

于 2013-10-31T20:42:48.713 に答える