数据结构篇:
package com.qf.scala.exercise
import scala.collection.mutable
//编写一段WordCount函数,
// 统计传入的字符串中单词的个数
object _dya02Ex01 {
def main(args: Array[String]): Unit = {
//调用
wordCount("anything is possible believe yourself")
//定义wordCount函数
def wordCount(str:String)={
val count = new mutable.HashMap[String,Int]
for(words <- str.split(" ")) {
count(words) = count.getOrElse(words,0) + 1
}
}
}
}
package com.qf.scala.exercise
//编写一个函数 minmax(values:Array[Int]),
// 返回数组中最小值和最大值的对偶
object _dya02Ex02 {
def main(args: Array[String]): Unit = {
def minAndMax(v:Array[Int]) ={
(v.min,v.max)
}
val ints = Array(1,2,3,4,5,6)
println(minAndMax(ints))
//(1,6)
}
}
package com.qf.scala.exercise
//编写一个函数,从一个整型链表中去除所有的零值
object _dya02Ex03 {
def main(args: Array[String]): Unit = {
def removeZero(nums:List[Int])={
nums.filter(_ != 0)
}
println(removeZero(List(2, 4, 5, 6, 7, 0, 8, 6, 4, 0, 2, 0, 0)))
//List(2, 4, 5, 6, 7, 8, 6, 4, 2)
}
}
package com.qf.scala.exercise
/*编写一个函数,接受一个字符串的集合,
以及一个从字符串到整数值的映射。返回整形的集合,
其值为能和集合中某个字符串相对应的映射的值。
举例来说,给定Array(“Tom”,”Fred”,”Harry”)
和Map(“Tom”->3,”Dick”->4,”Harry”->5),返回Array(3,5)。
提示:用flatMap将get返回的Option值组合在一起
*/
object _dya02Ex04 {
def main(args: Array[String]): Unit= {
val a:Array[String] = Array("Tom","Fred","Harry")
val m:Map[String,Int] = Map("Tom"->3,"Dick"->4,"Harry"->5)
m4(a, m).mkString(",")
def m4(str:Array[String],map:Map[String,Int]):Array[Int]={
str.flatMap(map.get(_))
}
}
}
package com.qf.scala.exercise
/*编写一个函数,将Double数组转换成二维数组。传入列数作为参数。
距离来说,
传入Array(1,2,3,4,5,6)和3列,
返回Array(Array(1,2,3), Array(4,5,6))
*/
object _dya02Ex05 {
def main(args: Array[String]): Unit = {
val arr = Array(1,2,3,4,5,6,7)
println(m5(arr, 3).foreach(a => println(a.mkString(","))))
//1,2,3
//4,5,6
//7
def m5(arr:Array[Int],i:Int)={
arr.grouped(i).toArray
}
}
}
1