原始写法,我们将一个集合中特定的字符串找到后放到另一个集合中,最后返回这个集合:
fun getSpecialResult() : ArrayList{
val arrays = ArrayList()
val resultArrays = ArrayList()
for (special in arrays) {
if (special == "111") {
resultArrays.add(special)
}
}
return resultArrays
}
改进一:使用lambda表达式:
fun getSpecialResult(): ArrayList {
val arrays = ArrayList()
val resultArrays = ArrayList()
arrays.forEach { special: String ->
if (special == "111") {
resultArrays.add(special)
}
}
return resultArrays
}
改进二:利用类型推断,可以将表达式中的类型String去掉:
fun getSpecialResult(): ArrayList {
val arrays = ArrayList()
val resultArrays = ArrayList()
arrays.forEach { special ->
if (special == "111") {
resultArrays.add(special)
}
}
return resultArrays
}
改进三:在kotlin中,lambda只有一个参数的话,该参数special也是可以省略掉的:
fun getSpecialResult(): ArrayList {
val arrays = ArrayList()
val resultArrays = ArrayList()
arrays.forEach {
if (it == "111") {
resultArrays.add(it)
}
}
return resultArrays
}
改进四:利用kotlin自带的函数式编程的filter操作符:
fun getSpecialResult(): ArrayList {
val arrays = ArrayList()
arrays.filter {it == "111"}
return arrays
}