scala基础篇-数组和映射
scala基础篇-数组和映射
RogerIs谭纶 发表于3年前
scala基础篇-数组和映射
  • 发表于 3年前
  • 阅读 141
  • 收藏 4
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: scala基础篇-数组和映射

####定长数组

val n = new Array[Int](10) //初始化
val s = new Array[String](10) //初始化
val a = Array("hello", "world") //Array[String]
val b = Array(1,2) //Array[Int]
val c = Array(1,2,"a","b") //Array[Any]

####变长数组

import scala.collection.mutable.ArrayBuffer
val b = new ArrayBuffer[Int]()
b += 1
b += (2,3)
b ++= Array(4,5)

经常我们需要一个数组Array,但是初期不知道装多少元素,这种情况下,可以先构造ArrayBuffer,然后调用toArray方法。 ####遍历数组或数组缓冲

for(i <- 0 until b.length)
    println(i)
for(i <- 0 until 5) #不含5
    println(i)
for(i<- 0 to 4)#包含4
    println(i)

以上三个循环达到的效果是一样的。 ####映射 一个经典的程序员名言,“如果只能有一种数据结构,那就用哈希表吧。” Scala的哈希表,即映射。

val scores0 = new scala.collection.mutable.HashMap[String, Int] //初始化空的映射
val scores1 = Map("Alice" -> 10, "Bob" -> 20, "Cindy" -> 30) //不可变的映射集合
val scores2 = scala.collection.mutable.Map("Alice" -> 10, "Bob" -> 20) //可变的映射集合

scala>scores1 += ("John" -> 40)
scala>error: value += is not a member of scala.collection.immutable.Map[String,Int]
scala>scores2 += ("John" -> 40)

注意:Map是不可变集合对象,scores1是不可变的变量,作用是不一样的。

scores1("Bob") 
socres1.getOrElse("Bob", 0)
scores1.contains("Bob")
for((k,v) <- scores1) {
  println("k:"+k)
  println("v:"+v)
}
for(v <- socres1) println(v)
for(v <- socres1.values) println(v)

####元组 元组不同于映射(Map),它是在不使用类的前提下,将多个元素组合成一组(一个逻辑集合)。

val t= (1, "a")

元组可以很好地与模式匹配相结合(?待体会)

标签: scala
共有 人打赏支持
粉丝 3
博文 7
码字总数 2584
×
RogerIs谭纶
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: