Binlerce nesneyi içeren scala.collection.Iterator
'u scala.collection.immutable.Vector
'a nasıl dönüştürebilirim?Scala Yineleyici'yi bir Vector'e Dönüştürme
Öğelerin sayısı nedeniyle _*
kullanabileceğime inanmıyorum.
Binlerce nesneyi içeren scala.collection.Iterator
'u scala.collection.immutable.Vector
'a nasıl dönüştürebilirim?Scala Yineleyici'yi bir Vector'e Dönüştürme
Öğelerin sayısı nedeniyle _*
kullanabileceğime inanmıyorum.
Doğru türü ile doğru şeyi verir
Vector() ++ myIterator
can. Çok küçük vektörler ve yineleyiciler için, yüksek performanslı döngüler içinde, bunun yerine bir vektör oluşturmak için (bildiğim kadarıyla) gerekli asgari çalışır
val b = Vector.newBuilder[WhateverType]
while (myIterator.hasNext) { b += myIterator.next }
b.result
isteyebilirsiniz. öyle hepsi geçecek olduğundan toIndexedSeq
, esasen bunu yapar, ama (böylece aslında şimdi Vector
dönmek bile, bir Vector
garanti ediyoruz.) daha genel bir tür
toIndexedSeq
'u kullanabilirsiniz. Statik olarak bir Vector
döndürmez, ancak aslında birdir.
Sen can kullanımını _*
döndürür Tüm argümanlar ile Seq
. Ancak, ilk önce yineleyici bir diziye dönüştürüleceği ve daha sonra başka bir dizisi oluşturmak için bu diziyi kullanacağı için verimsiz olacaktır.
Şanslar OP gerçekten sadece bazı dizinlenmiş diziler istiyor ve özellikle bir "Vector" değil. –
Haklısınız. Sabit zamanlı rasgele erişim ve uzunluk hesaplarına (yakın) ihtiyacım var. – Ralph