湛江网站设计软件,建设英文网站的公司,北京到安阳的高铁,wordpress轻社交集合有助于数据分组#xff0c;方便后续操作
集合类型说明Lists有序的可重复的集合Sets无序的不可重复的集合Maps键值对映射集合#xff0c;键唯一#xff0c;且一个键只能映射到一个值
每个集合类型都可以是可变的或者只读的
List
List按照添加的顺序存储内容#xff…集合有助于数据分组方便后续操作
集合类型说明Lists有序的可重复的集合Sets无序的不可重复的集合Maps键值对映射集合键唯一且一个键只能映射到一个值
每个集合类型都可以是可变的或者只读的
List
List按照添加的顺序存储内容并允许重复 存储的内容通常称作元素 List类型
创建只读List使用listOf()方法
创建可变List使用mutableListOf()方法
在创建列表时Kotlin可以推断存储项的类型。可以在列表声明后的尖括号中添加类型来显式声明类型
fun main() {val readOnlyShapes listOf(triangle, square, circle)println(readOnlyShapes) // [triangle, square, circle]val shapes: MutableListString mutableListOf(triangle, square, circle)println(shapes) // [triangle, square, circle]shapes[2] circle2// shapes[3] circle3 // Index 3 out of bounds for length 3println(shapes) // [triangle, square, circle2]
}操作MutableList索引不能超过初始长度 为了防止不必要的修改你可以通过将可变列表赋值给List来获得它们的只读视图
fun main() {val shapes: MutableListString mutableListOf(triangle, square, circle)val shapesLocked: ListString shapes
}这种方式通常叫做铸造casting List常用方法
查看List方法
获取元素
fun main() {val readOnlyShapes listOf(triangle, square, circle)println(The first item in the list is: ${readOnlyShapes[0]}) // The first item in the list is: triangleprintln(The first item in the list is: ${readOnlyShapes.first()}) // The first item in the list is: triangleprintln(The last item in the list is: ${readOnlyShapes.last()}) // The last item in the list is: circle
}获取长度
fun main() {val readOnlyShapes listOf(triangle, square, circle)println(This list has ${readOnlyShapes.count()} items) // This list has 3 items
} 判断是否包含某一元素
fun main() {val readOnlyShapes listOf(triangle, square, circle)println(circle in readOnlyShapes) // true
}新增和删除
fun main() {val shapes: MutableListString mutableListOf(triangle, square, circle)// 添加 pentagonshapes.add(pentagon)println(shapes) // [triangle, square, circle, pentagon]// 删除第一个 pentagonshapes.remove(pentagon)println(shapes) // [triangle, square, circle]
}Set
Set集合中存储的数据无序并且不能重复
Set类型
创建只读Set使用setOf()方法
创建可变Set使用MutableList()方法
fun main() {val readOnlyFruit setOf(apple, banana, cherry, cherry)val fruit: MutableSetString mutableSetOf(apple, banana, cherry, cherry)
}Set常用方法
获取元素
因为Set为无序集合所以不能通过索引获取集合元素
fun main() {val set setOf(apple, banana, cherry, cherry)println(The first item in the set is: ${set.first()}) // The first item in the set is: appleprintln(The last item in the set is: ${set.last()}) // The last item in the set is: cherry
}Map
Map以键值对的形式存储数据。你可以通过引用键来访问值
键是唯一的如果插入重复键则会覆盖之前的值
Map类型
要创建只读Map使用mapOf()函数 要创建可变地图MutableMap使用mutableMapOf()函数 在创建Map时kotlin可以推断出存储的元素类型。要显式声明类型可以在Map声明后的尖括号中添加键和值的类型。例如MutableMapString, Int。键的类型为String值的类型为Int fun main() {val readOnlyJuiceMenu mapOf(apple to 100, kiwi to 190, orange to 100)println(readOnlyJuiceMenu) // {apple100, kiwi190, orange100}val juiceMenu: MutableMapString, Int mutableMapOf(apple to 100, kiwi to 190, orange to 100)println(juiceMenu) // {apple100, kiwi190, orange100}
}常用方法
获取数据
使用键获取值
fun main() {val readOnlyJuiceMenu mapOf(apple to 100, kiwi to 190, orange to 100)println(readOnlyJuiceMenu[apple]) // 100
}获取所有的键或者值
fun main() {val readOnlyJuiceMenu mapOf(apple to 100, kiwi to 190, orange to 100)println(readOnlyJuiceMenu.keys) // [apple, kiwi, orange]println(readOnlyJuiceMenu.values) // [100, 190, 100]
}获取键值对数量
fun main() {val readOnlyJuiceMenu mapOf(apple to 100, kiwi to 190, orange to 100)println(readOnlyJuiceMenu.count()) // 3
}修改/删除
fun main() {val juiceMenu: MutableMapString, Int mutableMapOf(apple to 100, kiwi to 190, orange to 100)juiceMenu.put(coconut, 150) // 添加键coconut和值 150println(juiceMenu) // {apple100, kiwi190, orange100, coconut150}juiceMenu.put(apple, 200) // 修改coconut的值成 200println(juiceMenu) // {apple200, kiwi190, orange100, coconut150}juiceMenu.remove(orange) // 删除orangeprintln(juiceMenu) // {apple200, kiwi190, coconut150}
}是否包含某元素
是否包含某个键
fun main() {val readOnlyJuiceMenu mapOf(apple to 100, kiwi to 190, orange to 100)println(readOnlyJuiceMenu.containsKey(kiwi)) // trueprintln(orange in readOnlyJuiceMenu.keys) // true
}是否包含某个值
fun main() {val readOnlyJuiceMenu mapOf(apple to 100, kiwi to 190, orange to 100)println(200 in readOnlyJuiceMenu.values) // false
}