Kotlin学习快速入门(4)——集合使用
2019-08-16 11:23:46来源:博客园 阅读 ()
Kotlin学习快速入门(4)——集合使用
List,Set,Map都是集合
- List 是一个有序集合,可通过索引(反映元素位置的整数)访问元素。元素可以在 list 中出现多次。列表的一个示例是一句话:有一组字、这些字的顺序很重要并且字可以重复。
- Set 是唯一元素的集合。它反映了集合(set)的数学抽象:一组无重复的对象。一般来说 set 中元素的顺序并不重要。例如,字母表是字母的集合(set)。
- Map(或者字典)是一组键值对。键是唯一的,每个键都刚好映射到一个值。值可以重复。map 对于存储对象之间的逻辑连接非常有用,例如,员工的 ID 与员工的位置。
创建集合
一般使用标准库中的方法来快速创建集合, listOf
当然,也可以使用Java的集合的构造方法
val numbers = listOf(0,1,2,3,4)
空集合:emptyList()、emptySet() 与 emptyMap(),需要指定类型
val empty = emptyList<String>()
取集合一部分
slice
val numbers = listOf(0,1,2,3,4)
//按顺序取
println(numbers.slice(1..3))//[1,2,3]
//按步长取
println(numbers.slice(0..4 step 2))//[0,2,4]
//取指定下标
println(numbers.slice(setOf(3, 4, 0)))//[3,4,0]
take 取n个元素
- take(n: Int) 从数组中按顺序取n个元素
- takeLast(n: Int) 取末尾n个元素
- takeWhile{expresstion} 一直取,不满足条件就停止
- takeWhileLast{expresstion} 从后面取,不满足条件就停止
val numbers = listOf(0,1,2,3,4)
println(numbers.take(3))//[0,1,2]
println(numbers.takeLast(3))//[2,3,4]
val numbers = listOf("one", "two", "three", "four", "five", "six")
println(numbers.takeWhile { !it.startsWith("three") })//[one,two]
println(numbers.takeLastWhile { !it.startsWith("three") })//[four, five, six]
drop
- drop(n: Int) 丢弃数组n个元素
- dropLast(n: Int) 丢弃数组末尾n个元素
- dropWhile{expresstion} 一直丢,不满足条件就停止
- dropWhileLast{expresstion} 从后面丢,不满足条件就停止
val numbers = listOf(0,1,2,3,4)
println(numbers.drop(3))//[3,4]
println(numbers.dropLast(3))//[0,1]
val numbers = listOf("one", "two", "three", "four", "five", "six")
println(numbers.dropWhile { !it.startsWith("three") })//three, four, five, six
println(numbers.dropLastWhile { !it.startsWith("three") })//[one, two, three]
filter
- filter{experssion} 取满足条件的元素
- filterNot{experssion} 取不满足条件的元素
- filterIndexed{experssion} 如果条件中需要使用下标值,则使用这个方法
- filterIsInstance<类型>() 元素是否为某个类型
val numbers = listOf("one", "two", "three", "four", "five", "six")
val longerThan3 = numbers.filter { it.length > 3 }
println(longerThan3)//[three,four,five]
val numbers = listOf("one", "two", "three", "four")
val filteredIdx = numbers.filterIndexed { index, s -> (index != 0) && (s.length < 5) }
println(filteredIdx)//[two,four]
val numbers = listOf(null, 1, "two", 3.0, "four")
//这里只获得list中的String类型数据
println(numbers.filterIsInstance<String>())//[two,four]
partition 分组
val numbers = listOf(2,3,4,5,6)
//上一节类中说过的数据类自动解析,match是满足,rest则是不满足
val (match, rest) = numbers.partition { it%2==0}
println(match)
println(rest)
检验数组是否满足条件
- any{expression} 数组中有任意一个元素满足条件,返回true
- none{expression} 数据中没有一个元素满足条件,返回true
- all{expression} 数组中全部元素满足条件,返回true
val numbers = listOf("one", "two", "three", "four")
println(numbers.any { it.endsWith("e") })
println(numbers.none { it.endsWith("a") })
println(numbers.all { it.endsWith("e") })
取某个元素
- [index] list也可以使用
- get(index) 平常方法
- elementAt(index) 新增的方法
- find{} 找到某个满足条件的第一个元素
- findLast{} 找到满足条件的最后一个元素
- random() 取随机
聚合操作
- min() 最小
- max() 最大
- average() 平均
- sum() 求和
- count() 计数
排序
- sort() 升序
- sortDescending() 降序
参考
Kotlin集合
原文链接:https://www.cnblogs.com/kexing/p/11264487.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 学习Java 8 Stream Api (4) - Stream 终端操作之 collect 2020-06-11
- java学习之第一天 2020-06-11
- Java学习之第二天 2020-06-11
- Spring WebFlux 学习笔记 - (一) 前传:学习Java 8 Stream Ap 2020-06-11
- Linux简单命令的学习 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash