复制元素到一个数组

将 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) } }

 

posted @ 2019-07-21 04:08  茗::流  阅读(160)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。