试题如上图所示,答案:
1.
val price=Map("apple"->3,"book"->10,"pen"->20)
val newprice= for((k,v)<-price) yield (k,v*0.9)
for((k,v)<-newprice) print(k+":"+v+" ")
val mutcounts=scala.collection.mutable.Map[String,Int]()
val filepath="D:\\ScalaWorkSpace\\Scala-exa\\src\\myfile.txt"
scala.io.Source.fromFile(filepath).getLines().foreach(
line=>{
for(word <- line.split(" ")){
val newcounts=mutcounts.getOrElse(word,0)+1
mutcounts+=(word->newcounts)
}
}
)
for((k,v) <- mutcounts) print(k+":"+v+"\n")
var counts=Map[String,Int]()
scala.io.Source.fromFile(filepath).getLines().foreach(
line=>{
for(word<-line.split(" ")){
if(counts.contains(word)){
val num=counts(word)+1
var newcounts=counts+(word->num)
counts=newcounts
}else{
counts=counts+(word->1)
}
}
}
)
for((k,v) <- counts) print(k+":"+v+"\n")
def sortMapCount(filepath:String): Unit ={
val sortCounts=scala.collection.mutable.SortedMap[String,Int]()
scala.io.Source.fromFile(filepath).getLines().foreach(
line=>{
for(word<-line.split(" ")){
val num=sortCounts.getOrElse(word,0)+1
sortCounts +=(word->num)
}
}
)
for((k,v) <- sortCounts) print(k+":"+v+"\n")
}
sortMapCount(filepath)
import scala.io.Source
import scala.collection.mutable.Map
import scala.collection.JavaConversions.mapAsScalaMap
import java.util.TreeMap
val filepath:String="D:\\ScalaWorkSpace\\Scala-exa\\src\\myfile.txt"
def treeMapCount(filepath:String):Unit={
val map:Map[String,Int]=new TreeMap[String,Int]
Source.fromFile(filepath).getLines().foreach(
line=>{
for(word<-line.split(" ")){
val num=map.getOrElse(word,0)+1
map += (word->num)
}
}
)
for((k,v)<-map) print(k+":"+v+"\n")
}
treeMapCount(filepath)
val data=scala.collection.mutable.LinkedHashMap("Monday"->java.util.Calendar.MONDAY)
data +=("Tuesday"->java.util.Calendar.TUESDAY)
data +=("Wednesday"->java.util.Calendar.WEDNESDAY)
data +=("Thursday"->java.util.Calendar.THURSDAY)
data +=("Friday"->java.util.Calendar.FRIDAY)
data +=("Saturday"->java.util.Calendar.SATURDAY)
data +=("Sunday"->java.util.Calendar.SUNDAY)
for((k,v)<- data){
print(k+":"+v+"\n")
}
import scala.collection.JavaConversions.propertiesAsScalaMap
val properties:Map[String,String]=System.getProperties()
for((k,v)<- properties){
print(k+":"+v+"\n")
}
def minmax(values:Array[Int]):(Int,Int)={
(values.max,values.min)
}
def lteqgt(values:Array[Int],v:Int):(Int,Int,Int)={
var a,b,c:Int=0
for(x <- values){
if(x<v) a+=1
else if(x==v) b+=1
else if(x>v) c+=1
}
(a,b,c)
}
得到的结果如下所示:
res9: scala.collection.immutable.IndexedSeq[(Char, Char)] = Vector((h,W), (e,o), (l,r), (l,l), (o,d))
可遍历便可拉链,按遍历顺序拉链