Kotlin集合使用

欢迎来到风的博客

Kotlin动态

  • At the Google I/O keynote,Kotlin 成为 Android 官方编程语言
  • ACM-ICPC World Finals 2018将新增Kotlin作为编程语言

    集合

    集合类型Collections

    • 有序不可重复 -Array
    • 无序不重复 -set
    • 无序可重复 -Map

大小固定,元素类型不可变

1
2
3
4
5
6
fun main(array: Array<String>) {
var arrays = arrayOf("java","c","Kotlin")
for (a in arrays ){
println(a)
}
}

创建默认值数组

1
var arrays = Array(20, { "Kotlin" })

创建自增数组

1
var count = Array(10, { i -> i + 1 })

数组常用方法

1
2
3
4
//数组计数
count.size
//数组是否为空
count.isEmpty()

过滤重复数组

1
2
3
println(arrays.distinct())
//或
println(arrays.toSet())

提示:hashSetOf自身有去重

1
2
3
4
5
var has = hashSetOf("java", "Kotlin", "Kotlin", "Kotlin", "Kotlin", "Kotlin")
for (h in has) {
println(h)
}
//输出结果 java Kotlin

切割数组

1
val Intercept=arrays.sliceArray(2..4)

大小可变,元素类型不可变

1
2
3
4
5
var mutableListOfs = mutableListOf("java","c","C++","java","Visual Basic"," Scala","Kotlin","java","c","Kotlin")
//数组末尾添加
mutableListOfs.add("Swift")
//添加一个数组
mutableListOfs.addAll(arrays)

无序不重复

1
2
3
4
5
6
7
8
9
10
val mainLine = setOf("Java", "Swift", "C++", "PHP", "Go", "Python")
val twoLine = setOf("C++", "C", "Ruby", "Objective-C")
val threeLine = setOf("C++", "Scala", "Dart")
//元素计数
println(mainLine.count())
//是否为空
println(mainLine.isEmpty())
//是否包含
println(mainLine.contains("Swift"))
println(mainLine.containsAll(twoLine))

转换数组

1
2
3
4
val array = mainLine.toTypedArray()
for (a in array) {
println(a)
}

集合运算

1
2
3
4
5
6
val meetLines = mainLine.intersect(twoLine)//交集
println(meetLines)
val diffLine = mainLine.subtract(twoLine)//差集
println(diffLine)
println(mainLine.union(twoLine))//并集
println(mainLine.minus(twoLine))//补集

Map使用,没有顺序位置会改变

1
2
3
4
5
6
7
8
val mapList = mapOf<String, String>(Pair("a", "1"), Pair("b", "1"), Pair("c", "1"), Pair("d", "1"))
//获取key值
println("a".toLowerCase())
println("a".toUpperCase())
println(mapList.getOrDefault("A".toLowerCase(), "不存在"))
//返回所有key/value
mapList.keys
mapList.values

转换为可变

1
2
3
4
5
6
7
8
9
10
11
val tmapList = mapList.toMutableMap()
//修改
tmapList["a"] = "8648"
//添加
tmapList.put("e", "156156")
//移除
tmapList.remove("a")
for (t in tmapList) {
println(t)
}

Demo下载地址:https://github.com/Ysrfengnull/kt.git

  • Search in QQ group 200409033