程序员人生 网站导航

scala学习3 数组相关操作映射和元组

栏目:互联网时间:2014-11-14 08:19:26
1.定长数组
    如果需要1个长度不变的数组,可使用Scala中的Array.
     val nums = new Array[int](10)
       val s = Array("Hello","world")

2.变长数组:数组缓冲
1.
    val b = ArrayBuffer[int]() 
2.追加元素
     b +=(1,2,3,4,5)
3.追加任何集合
     b ++= Array(8,13,21)
4.移除最后5个元素
     b.trimEnd(5)
5.插入元素
     b.insert(2,6)
6.插入任意多个元素
     b.insert(2,7,8,9)
7.移除元素
     b.remove(1)
8,移除多个元素
     b.remove(2,3,4,5)

3.遍历数组和数组缓冲
1.两个元素1跳
     0 until (a.length, 2)
2.从数组的尾端开始遍历
     (0 util a.length).reverse

映照和元组

1.构造映照
     1.不可变映照
     val sources = Map("Alice" -> 10,"Bob" ->3)
     2.可变映照
      val scores = new scala.collection.mutable.HashMap[String,int]

2.获得映照中的值
     val bobs = scores("Bob")   //类似java中的scores.get("Bob")
     
     val bobsScore = scores.getOrElse("Bob",0)


3 更新映照中的值
     scores("Bob")  =  10  //更新键"Bob"对应的值
     
     scores("Fred")  =  7   //增加新的键

     scores += ("Bob" -> 10, "Fred" -> 7)  //添加多个关系

     scores -= "Alice" //移除某个键和对应的值

      var  scores = .....; scores =scores +("Bob" -> 10, "Fed" ->7)  //更新不可以变集合映照

4.迭代映照
   1.
      for((k,v) <- 映照)  
   2.
      scores.keyset//类似java的keyset
      scores.values //映照值得集合
   3.
          
   5.非哈希映照
        val scores = scala.collections.immutable.Sortedmap("Alice" ->10,"Fred"_>7)   
              
   6. 与java的互操作
        把Java的TreeMap转为Scala映照类型
          val  scores:  scala.collection.mutable.Map[String,Int] = new java.util.TreeMap[String,Int]
         
         将java.util.Properties 转到Map[String,String]
              val props: scala.collection.Map[String,String] = System.getProprties()
          
     7.元组
          映照是键/值对偶的集合.对偶式元组的最简单形态-----元组是是不同类型的值的聚集.
          1.元组通过将单个值包括在园括号中构成
            (1,3.14,"Fred")
               
           2.如果有1个元组, val t = {1,2,"ff"},可使用
               val  first = t._1 //将t元组中的第1个值赋给first,元组的组员是从1开始的2非0
            
            3.对应不需要的组员可使用_,进行替换
               val (first,scond, _) = t

             元组可以用在函数需要返回不止1个值的情况,
                    
        8.拉链操作
             val symbols = Array("<","-",">")
             val counts = Arry(2,10,2)
             val pairs = sysbols.zip(counts)
           输出对偶数组
               Array(("<",2),("-",10),(">",2))
          
                      
               
     

     
     
     



























































  





















     


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐