Получите Scala Iterator
из коллекции и используйте преобразование из scala.collection.JavaConversions
, чтобы превратить его в Java Iterator
.
Вот пример:
scala> val li1 = List(2, 3, 5, 7, 11)
li1: List[Int] = List(2, 3, 5, 7, 11)
scala> val ii1 = li1.iterator
ii1: Iterator[Int] = non-empty iterator
scala> import collection.JavaConversions._
import collection.JavaConversions._
scala> val ji1: java.util.Iterator[Int] = ii1
ji1: java.util.Iterator[Int] = IteratorWrapper(non-empty iterator)
scala> val ji2 = ii1: java.util.Iterator[Int]
ji2: java.util.Iterator[Int] = IteratorWrapper(non-empty iterator)
С JavaConversions
, импортированным в любую заданную область, существует неявное преобразование, которое превратит любой Scala Iterator[T]
в соответствующий Java Iterator<T>
. В предыдущем примере явный тип объявления ji1
вызвал применение неявного преобразования инициализатора ii1
. В случае ji2
указание типа на ii1
запускает преобразование.