我的第一篇博客
最近在实验室学习scala,就从里写起吧,希望你能坚持下去!
个人感觉Scala这门语言和Java差不多,学起来的感觉很像,你如果java学的好的话这门语言入门是很快的,不同点就是Scala的代码写起来更容易让人读懂,对数据的操作也更方便一点,Scala自己的独特的高级语法也有很多,需要多练习。但这也是作为一个编程菜鸟的拙见,希望自己的会越来越好,能真正融入到实验室这个大家庭里面去。我会尽量将自己的一些学习笔记整理到这上面来,就当作是自己的日记吧,相信也不会有太多人去看。
scala中映射(map)在数据处理中的一些笔记
映射包放在在Scala.collection.mutable和Scala.collection.immutable中,有HashMap、LinkedHashMap(按插入顺序访问)和SortedMap(按照顺序访问)等几种映射。其中immutable中的键值不可以改变,若要更新键值需要更新整个一对映射:
val scores = Map("Alice"->10)
当需要更新“Alice”对应的值时,需要
scores += ("Alice"->20)
而对于mutable中的映射,只需要
scores("Alice") = 20
即可。对于删除map某一项时,直接用-=:
scores -= ("Alice")
也可以和Java的映射进行转换,只需要
import scala.collection.JavaConversion.mapAsScalaMap
val scores: scala.collection.mutable.Map[String, Int] = new java.util.TreeMap[String, Int]
这里有一个有意思的小例子,计算一个文本中每个单词出现的次数,希望对后期的我有所启发:
def exe4(string: String):mutable.SortedMap[String, Int] = {
val source = Source.fromFile(string)
val tokens = source.mkString.split("\\s+")
var s = SortedMap[String, Int]()
for(key<-tokens) s += (key->(s.getOrElse(key, 0)+1))
s
}