美文网首页
Scala集合

Scala集合

作者: 喵星人ZC | 来源:发表于2019-05-31 01:45 被阅读0次

    一、List

    同Array一样,用来装同种类型元素的框,有序可重复。

    定长List

    Nil就是一个空的定长List

    scala> Nil
    res40: scala.collection.immutable.Nil.type = List()
    
    集合的头
    scala> l.head
    res41: Int = 1
    
    集合的尾巴
    scala> l.tail
    res42: List[Int] = List(2, 3, 4)
    
    

    利用Nil拼接一个List

    scala> val l2 = 1::2::3::Nil
    l2: List[Int] = List(1, 2, 3)
    

    变长List

    scala> import scala.collection.mutable.ListBuffer
    import scala.collection.mutable.ListBuffer
    
    
    scala> val l = ListBuffer[Int]()
    l: scala.collection.mutable.ListBuffer[Int] = ListBuffer()
    ----------------------------------------------
    添加元素
    scala> l+=1
    res43: l.type = ListBuffer(1)
    
    scala> l+=(2,3,4)
    res44: l.type = ListBuffer(1, 2, 3, 4)
    
    scala> l++=List(5,6,7)
    res46: l.type = ListBuffer(1, 2, 3, 4, 5, 6, 7)
    
    scala> l.append(8)
    
    scala> l
    res48: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4, 5, 6, 7, 8)
    ----------------------------------------------
    删除元素
    scala> l-=1
    res49: l.type = ListBuffer(2, 3, 4, 5, 6, 7, 8)
    
    移除下标为0的元素
    scala> l.remove(0)
    res51: Int = 2
    
    scala> l
    res52: scala.collection.mutable.ListBuffer[Int] = ListBuffer(3, 4, 5, 6, 7, 8)
    

    二、Map

    映射 key=value

    定长Map

    scala> val map = Map("zhangsan" -> 19 , "lisi" -> "20")
    map: scala.collection.immutable.Map[String,Any] = Map(zhangsan -> 19, lisi -> 20)
    
    scala> map("zhangsan")
    res53: Any = 19
    

    变长Map

    scala> val a = scala.collection.mutable.Map("zhangsan" -> 19 , "lisi" -> "20")
    a: scala.collection.mutable.Map[String,Any] = Map(lisi -> 20, zhangsan -> 19)
    
    scala> a("lisi")
    res54: Any = 20
    

    HasMap

    scala> val b = scala.collection.mutable.HashMap[String,Int]()
    b: scala.collection.mutable.HashMap[String,Int] = Map()
    
    scala> b("wangswu") = 30
    
    scala> b+=("zhangsan" -> 19 , "lisi" -> 20)
    res57: b.type = Map(lisi -> 20, zhangsan -> 19, wangswu -> 30)
    
    scala> b-="wangswu"
    res59: b.type = Map(lisi -> 20, zhangsan -> 19)
    

    Map的迭代输出

    package com.soul.bigdata.scala.day04
    
    import scala.collection.mutable
    
    object MapApp {
      def main(args: Array[String]): Unit = {
        //    val m = mutable.HashMap()
        val m = mutable.Map("zhangsan" -> 20, "lisi" -> 30)
    
        //方法1
        //    for ((key,value) <- m){
        //      println(key + s":" + value)
        //    }
    
        //方法2
    //    for (key <- m.keySet) {
    //      println(key + ":" + m.getOrElse(key, 0))
    //    }
    
        //方法3
        for (value <- m.values) {
          println(value)
        }
    
      }
    }
    
    

    相关文章

      网友评论

          本文标题:Scala集合

          本文链接:https://www.haomeiwen.com/subject/syritctx.html