scala中list,map,option的使用

  def main(args: Array[String]): Unit = {
    //scala列表值时不可变的   主要掌握 ::,Nil,:::,tabulate,fill,foreach的使用
    val numlists:List[Int]=List(1,2,3,4)
    //也可以通过下面创建一个一样的,但功能更强
    val numlists1:List[Int]=List.tabulate(4)(n=>n+1)              //List.tabulate() 方法是通过给定的函数来创建列表  ,起始值为0
    val stringlist:List[String]=List.fill(2)("hello")       //创建2个hello的列表
    val alllists:List[Any]=List("fa",2,true)
    //列表增加   没有java里的add方法
    val test=stringlist:::("world"::Nil)                    //打印结果为hello hello  world       :::是连接list的意思   构造列表的两个基本单位是 Nil 和 ::     Nil 也可以表示为一个空列表。

    test.foreach(list=>println(list))     //测试打印
  }
    //map  默认是不可变的,如果用可变的用mutable.Map,这个mutable.Map可以put,remove值
    val man:Map[String,Any]=Map(
      "name"->"gmy",
      "age"->25,
      "like"->"computer",
      "other"->"games"
    )
    val woman:Map[String,Any]=Map(
      "name"->"ggh",
      "age"->22,
      "like"->"TV"
    )
    val man1:mutable.Map[String,Any]=mutable.Map(
      "name"->"gmy",
      "age"->25,
      "like"->"computer",
      "other"->"games"
    )
    val woman1:mutable.Map[String,Any]=mutable.Map(
      "name"->"ggh",
      "age"->22,
      "like"->"TV"
    )
    man1.put("sex","man")
    man1.remove("other")
    //合并map 用 ++,会覆盖相同键的值
    val persons:Map[String,Any]=man++woman
    val persons1:mutable.Map[String,Any]=man1++woman1

    persons1.keys.foreach(i=>println(persons1(i)))
    val man1:mutable.Map[String,Any]=mutable.Map(
      "name"->"gmy",
      "age"->25,
      "like"->"computer",
      "other"->"games"
    )
    val name:Option[Any]=man1.get("name")           //Some(gmy)
    print(name.get)      //用 get 获取里面的值  gmy
    man1.remove("name")         //去掉name之后
    val name1=man1.get("name")      //再获取name
    println(name1)      //打印为None
    val name2=man1.get("name").getOrElse("defaut")       //用getOrElse
    print(name2)     //取不到则取默认值defaut

你可能感兴趣的:(scala)