从今天起会不定时的在该区发贴关于自己学习scala的笔记总结(同时同步更新在自己的博客)
从入门到精通的开始
学习总结:
1、映射是最灵活多变的数据结构之一
2、通常的函数计算值、映射只做查询
3、scala中的if...else简写.getOrElse
4、+=操作添加多个关系
5、-= 移除某个键对应的值
6、而从不可变的映射中移除某个键,用-操作、
但是获得的是一个移除键后的新的映射、而
老旧映射是共享大部分结构的
7、for循环中使用模式匹配
for((k,v) <- 映射) 处理k,v
for循环中使用Iterable
8、反转映射:
for((k,v) <- 映射) yield (v,k)
9、排序映射:
scala.collections.immutable.SortedMap
顺序访问LinkHashMap
scala.collection.mutable.LinkedHashMap
10、与java的转换
scala .collection.JavaConversions.mapAsScalaMap
val scores: scala.collecction.mutable.Map[String,Int] =
new java.util.TreeMap[String,Int]
import scala.collection.JavaConversions.propertiesAsScalaMap
val props:scala.collections.Map[String,String] = System.getProperties()
相反、把scala转化为java映射
import scala.collection.JavaConversions.mapAsJavaMap
import java.awt.font.TextAttribute 引入下面映射会用的键
val attrs = Map(FA -> "Jon",Size -> 12)
val font = new java.awt.Font(attrs) 该方法预期一个java映射
11、元祖:对偶是简单的元祖,元祖是不通类型的值的聚集,访问类型
_1,_2
在不需要的部位使用_ 如:
val (first,second,_) = t
元祖用于函数需要返回不止一个值的情况,如StringOps 的partition方法,返回的是一对字符串
"New York" .partition(._isUpper) //输出对偶("NY","ew ork")
12、拉链Zip操作
keys (a,b,c)
values (1,2,3) //keys.zip(values) = ((a,1),(b,2),(c,3))
|
|