快学scala第十三章习题答案

  • 格式:doc
  • 大小:43.00 KB
  • 文档页数:4

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import collection.mutable.{Map,HashMap,SortedSet}

def indexs(str:String):Map[Char,SortedSet[Int]]={ var map = new HashMap[Char, SortedSet[Int]](); var i = 0;

str.for each{

c=>

map.get(c) match{

case Some(result) => map(c) = result + i case None => map += (c-> SortedSet{i})

}

i += 1

}

map

}

println(indexs("Mississippi"))

import scala.collection.immutable.HashMap

val str = "abcabcac"

val frequencies = str.par.aggregate(HashMap[Char,Int]())( {

(a,b) =>

a + (

b -> (a.getOrElse(b,0) + 1))

}

,

{

(map1,map2) =>

(map1.keySet ++ map2.keySet).foldLeft( HashMap[Char,Int]() ) {

(result,k) =>

result + ( k -> ( map1.getOrElse(k,0 ) + map2.getOrElse(k,0) ) ) }

}

)

println(frequencies)