复制元素到一个数组
将 Traversable 对象中的元素复制到一个已有的数组中
解决方案:
1、copyToArray
2、copyToBuffer
copyToArray
package main object Test { def main(args: Array[String]): Unit = { val t1 = Traversable(1 to 10: _*); println(t1); //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val result = t1.toArray; println(result); //[I@5594a1b5 result.foreach(x => { print(x + " ") }); //1 2 3 4 5 6 7 8 9 10
val array = new Array[Int](t1.size); t1.copyToArray(array); println(array.getClass.getName); //[I println(array); //[I@511baa65 array.foreach(x => { print(x + " ") }); //1 2 3 4 5 6 7 8 9 10 } }
package main object Test { def main(args: Array[String]): Unit = { val t1 = Traversable(1 to 10: _*); println(t1); //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val array = new Array[Int](t1.size); t1.copyToArray(array, 3, 5); //复制到array,从索引3开始,复制5个元素 println(array); //[I@43a25848 array.foreach(x => { print(x + " ") }); //0 0 0 1 2 3 4 5 0 0 } }
copyToArray()还可以指定复制到数组的哪一部分。
如果没有指定开始位置start,则默认从0开始。
如果没有指定复制的长度,则默认将数组的全部元素都复制到数组中。
如果指定的长度超过了 Traversable 对象的长度,则以 Traversable 对象的长度为准。
copyToBuffer
package main object Test { def main(args: Array[String]): Unit = { val t1 = Traversable(1 to 10: _*); println(t1); //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val buffer = scala.collection.mutable.Buffer[Int](t1.size); t1.copyToBuffer(buffer); println(buffer.getClass.getName); //scala.collection.mutable.ArrayBuffer println(buffer); //ArrayBuffer(10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) } }

浙公网安备 33010602011771号