1. object Test01 {
def main(args: Array[String]): Unit = {
val list = Array(1,4,7,9,10,6,8,99,88,66)
println(filter(list,(_%2==0)))
}
def filter(list: Array[Int],fun:(Int)=>Boolean) = {
//用fun做守卫,过滤
val res = for (elem <- list if (fun(elem))) yield {
elem
}
res.toList
}
}
2.
object Test02 {
def main(args: Array[String]): Unit = {
val list = Array(10,4,6,10,2)
println(poly(list,_+_))
}
def poly(list:Array[Int],fun:(Int,Int)=>Int) = {
var res = list(0)
for (i<-1 until list.size) res = fun(res,list(i))
res
}
3. object Test03 {
def main(args: Array[String]): Unit = {
val list = Array("zhangsan shenzhen man","lisi beijing woman","zhaoliu beijing man")
println(group(list,_.split(" ")(2)))
}
def group(list:Array[String],fun:(String)=>String) = {
val map = new util.HashMap[String,util.ArrayList[String]]()
for (elem <- list) {
val key = fun(elem)
if(map.containsKey(key)){
map.get(key).add(elem)
}else{
val value = new util.ArrayList[String]()
value.add(elem)
map.put(key,value)
}
}
map
}
}
4. object Test04 {
def main(args: Array[String]): Unit = {
val list = Array("zhangsan shenzhen man","lisi beijing woman","zhaoliu beijing man")
println(group(list,_.split(" ")(2)))
}
def group(list:Array[String],fun:(String)=>String) = {
val map = new util.HashMap[String,util.ArrayList[String]]()
for (elem <- list) {
val key = fun(elem)
if(map.containsKey(key)){
map.get(key).add(elem)
}else{
val value = new util.ArrayList[String]()
value.add(elem)
map.put(key,value)
}
}
map
}
}