人々が通常スカラーで行う方法はlist.slice(start, start+nCopy)
です。 ScalaではList
がないArrayList
のようなランダムアクセスコンテナがJavaであることを
注意、。これはリンクされたリストとして実装されています。特に、これを何度もやってみようとすると、あなたのリストを手近に索引付けされたもの、つまりval converted = list.toIndexedSeq
またはそれ以上のものに変換すると、かなり助けになります。val converted = list.toArray
。
.slice
Array
またはIndexedSeq
は、特にstart
が高い場合にはるかに効率的です。
あなたが本当にある場合さて、この一回の操作の効率化、何も(残念ながら)懸念が良い古いJavaのアプローチを打つ:
val converted = list.toArray
val copied = java.util.Arrays.copyOfRange(converted, start, start+nCopy)
これは、より速く大きさの注文することができ(数百の)十分な数の要素をコピーするときは、converted.slice
(単独ではlist.slice
のまま)
あなたは 'スライス'を探しています。 'List'も最良のデータ構造ではないかもしれません。 –