packagecom.learn.scala
/**
* scala第八天
* Created by zhuqing on 2017/2/27.
*/
objectDay8MapAndTuple {
defmain(args: Array[String]): Unit = {
valmap =Map("Robbie"->100,"Lizzy"->89,"Tom"->90);
for((k, v) <- map) {
println("k="+ k,"v="+ v)
}
//scala中對Map的key,value值的遍歷與Java類似
for(k <- map.keySet) {
println("k="+ k +"=>"+ map.get(k).get)
}
for(v <- map.values) {
println("v="+ v)
}
/**
* 元組:不同類型值的聚集就是元組,Map的鍵值對就是最簡單的元組,如上面的(String,Int).
* 這個是Java中沒有的概念,如果真要用Java實現(xiàn)元組的功能,可以用Object類型的集合。
*/
valtuple = ("Robbie","Math",83)
//tuple取值時可以按照順序號取
println(tuple._1 +":"+ tuple._2 +":"+ tuple._3)
//也可以使用模式匹配的方式獲取
val(name, classname, score) = tuple;
println(name +":"+ classname +":"+ score)
//如果不是每個屬性都需要可以使用下劃線_為不使用的屬性命名
val(enName, _, enScore) = tuple
println(enName +"=>"+ enScore)
//元組可以用在函數(shù)返回多種返回值時,這種情況Java不好處理
val(secondName, age) =this.getNameAndAge();
println("scondName="+ secondName +", age="+ age)
/**
* 拉鏈操作,將兩個數(shù)組合并成一個對偶數(shù)組
*/
valnames =Array("Robbie","Tom","Lizzy")
valages =Array(22,23,21)
valnewTupes = names.zip(ages)
for((name, age) <- newTupes) {
println(name +"=>"+ age)
}
}
/**
* 生成姓名和年齡的元組
*
*@return
*/
defgetNameAndAge(): (String, Int) = {
("Tom",23)
}
}