Kotlin集合妙用
2018-06-06 本文已影响0人
土逗牛肉
前言
用了一段时间Kotlin,感觉Kotlin名副其实最优美的语言,怪不得谷歌选它作为官方Android开发语言。很多地方写法上跟Java比起来,简直爽的不得了。下面对我用到的写法做个总结。
集合
说道集合,基本上每个项目都无法避免,用集合过程的中可能会有排 > >序、过滤等等操作
构造一个学生list用来举例说明:val students=MutableList<Student> //Student.kt 包含姓名、年龄、性别 data class Student(var name:String,var age:Int,var sex:String)
- 集合过滤
场景:在students中需要取出age>18的所有学生
- Java的写法
datas=new List<Student>() for(Student item:students){ if(age>18){ datas.add(item) } }
- Kotlin写法:写出来你可能不信
datas=students.filter{ it.age>18 }
Kotlin一行就搞定了,你没看错就是一行
- 集合排序
场景:接下来需要把年龄从大到小排序
- Java写法
Collections.sort(students,new Comparator(){ @Override public int compare(Student o1,Student o2){ return o1.age-o2.age } })
- Kotlin写法:
//降序: stedents=stedents.sortedByDescending{ it.age } //升序 students.sortedBy{ it.age }
- 集合分组
//list为Map<String,List<Student>> 类型
val list=students.groupBy{ if(it.sex=="男") "boy" else "gril" }
- 集合遍历
stedents.forEach{ print(it) }
- 查询最大最小年龄
//返回最大Student
val maxAgeStu=stedents.maxBy{ it.age }
//最小年龄
val minAgeStu=stedents.minBy{ it.age }
- 查询男生个数
val count=students.count{ it.sex=="男" }
总结
以上全部都是开发过程中用到的实践,写起来非常舒服,集合还有其他非常简便的操作,这里就不一一列举,有兴趣的同学自己尝试