Scala基础——集合

scala中默认使用的都是不可变集合
scala中可变和不可变集合几乎都有对应的版本
不可变集合,容量固定;可变集合,可以扩展。

  • 数组Array、ArrayBuffer
    定长数组
      //定义  
      val arr1= new Array[Int](10)
      println(arr1.mkString(","))
      //隐式调用apply方法
      val arr2= Array(1,2,3)
      println(arr2.mkString(","))
      //取值:返回数组中下标为2的值
	println(arr2.apply(2))
      //赋值
      arr2(1)=10
      arr2.update(1, 10)
      println(arr2.mkString(","))
      //追加
      //:对着哪边,则追加哪个
      val arr3= arr1 :+ "????"
      val arr4= "????" +: arr1 
      println(arr3.mkString(","))
      println(arr4.mkString(","))

变长数组

       /**
       * 变长数组
       * 在括号内指定数组元素
       * */
      val arrBuffer1= ArrayBuffer[Int](10,9,8)
      println(arrBuffer1)
      //赋值,取值
      arrBuffer1(1)=1
      println(arrBuffer1(1))
      println(arrBuffer1.apply(2))
      //追加
      arrBuffer1.append(1,2,3)
      println(arrBuffer1)

多维数组

      /**
       * 多维数组3行4列,定长的
       * */
      val array1= Array.ofDim[Int](3,4)
      println(array1.mkString(","))//返回数组地址
      //赋值
      array1(1)(2)=1
      for(x<-array1){
        println(x.mkString(","))//输出数组值
      }
      //追加,其实为合并数组,只能追加一维数组,若是二维数组,会将其看做一维数组进行追加
      val array2 =array1 :+ Array.ofDim[Int](3,4)
      for(x<-array2){
        println(x.mkString(","))//输出数组值
      }
      val array3 =array1 :+ Array(1,2,3,5)
      for(x<-array3){
        println(x.mkString(","))//输出数组值
      }

Scala与Java数组的转换

   /**
   * Scala与java的互相转换
   * */
  import scala.collection.JavaConversions.bufferAsJavaList
  val array4 = ArrayBuffer("1","2","3")
  val javaArr = new ProcessBuilder(array4)
  println(javaArr.command())//javalist返回集合
  javaArr.command().add("10")
  println(javaArr.command())
  
  
  import scala.collection.JavaConversions.asScalaBuffer  
  import scala.collection.mutable.Buffer
  val scalaArr:Buffer[String] = javaArr.command()
  println(scalaArr)

猜你喜欢

转载自blog.csdn.net/weixin_42292787/article/details/85236251
今日推荐