📜  Kotlin 集合

📅  最后修改于: 2022-05-13 01:54:42.389000             🧑  作者: Mango

Kotlin 集合

与Java集合类似,Kotlin 也引入了集合的概念。一个集合通常包含许多相同类型的对象,集合中的这些对象称为元素。 Kotlin 标准库提供了一组丰富的集合管理工具。

集合类型

在 Kotlin 中,集合分为两种形式。

  1. 不可变集合
  2. 可变集合

1. 不可变集合

这意味着它仅支持只读功能并且不能修改其元素。不可变集合及其对应的方法有:

  • 列表– listOf() 和 listOf()
  • 集合——setOf()
  • 地图– mapOf()

列表——它是一个有序集合,我们可以通过使用索引来访问元素项目——定义每个元素位置的整数。元素可以在列表中重复任意次数。我们不能在不可变列表中执行添加或删除操作。 Kotlin 程序演示不可变列表:

Kotlin
// An example for immutable list
fun main(args: Array) {
    val immutableList = listOf("Mahipal","Nikhil","Rahul")
    // gives compile time error
    // immutableList.add = "Praveen"
    for(item in immutableList){
        println(item)
    }
}


Kotlin
fun main(args: Array) {
    // initialize with duplicate values
      // but output with no repetition
    var immutableSet = setOf(6,9,9,0,0,"Mahipal","Nikhil")
    // gives compile time error
    // immutableSet.add(7)
    for(item in immutableSet){
        println(item)
    }
}


Java
// An example for immutable map
fun main(args : Array) {
    var immutableMap = mapOf(9 to "Mahipal",8 to "Nikhil",7 to "Rahul")
    // gives compile time error
    // immutableMap.put(9,"Praveen")
    for(key in immutableMap.keys){
        println(immutableMap[key])
    }
}


Kotlin
fun main(args : Array) {
    var mutableList = mutableListOf("Mahipal","Nikhil","Rahul")
    // we can modify the element
    mutableList[0] = "Praveen"
    // add one more element in the list
    mutableList.add("Abhi")
    for(item in mutableList){
        println(item)
    }
}


Kotlin
fun main(args: Array) {
    var mutableSet = mutableSetOf(6,10)
    // adding elements in set
    mutableSet.add(2)
    mutableSet.add(5)
    for(item in mutableSet){
        println(item)
    }
}


Kotlin
fun main(args : Array) {
    var mutableMap = mutableMapOf(1 to "Mahipal",2 to "Nikhil",3 to "Rahul")
    // we can modify the element
    mutableMap.put(1,"Praveen")
    // add one more element in the list
    mutableMap.put(4,"Abhi")
    for(item in mutableMap.values){
        println(item)
    }
}


输出:

Mahipal
Nikhil
Rahul

Set - 它是无序元素的集合,也不支持重复元素。它是独特元素的集合。通常,集合元素的顺序没有显着影响。我们不能执行添加或删除操作,因为它是一个不可变的 Set。演示不可变集的 Kotlin 程序:

科特林

fun main(args: Array) {
    // initialize with duplicate values
      // but output with no repetition
    var immutableSet = setOf(6,9,9,0,0,"Mahipal","Nikhil")
    // gives compile time error
    // immutableSet.add(7)
    for(item in immutableSet){
        println(item)
    }
}

输出:

6
9
0
Mahipal
Nikhil

Map – Map 键是唯一的,每个键只保存一个值,它是一组键值对。每个键都映射到一个值。值可以是重复的,但键应该是唯一的。地图用于存储两个对象之间的逻辑连接,例如,学生 ID 及其姓名。由于它是不可变的,它的大小是固定的,并且它的方法支持只读访问。 Kotlin 程序演示不可变映射:

Java

// An example for immutable map
fun main(args : Array) {
    var immutableMap = mapOf(9 to "Mahipal",8 to "Nikhil",7 to "Rahul")
    // gives compile time error
    // immutableMap.put(9,"Praveen")
    for(key in immutableMap.keys){
        println(immutableMap[key])
    }
}

输出:

Mahipal
Nikhil
Rahul

2. 可变集合

它支持读取和写入功能。可变集合及其对应的方法有:

  • 列表– mutableListOf()、arrayListOf() 和 ArrayList
  • 集合——mutableSetOf()、hashSetOf()
  • 映射– mutableMapOf()、hashMapOf() 和 HashMap

列表——由于可变列表支持读写操作,列表中声明的元素可以被删除或添加。 Kotlin 程序演示可变列表:

科特林

fun main(args : Array) {
    var mutableList = mutableListOf("Mahipal","Nikhil","Rahul")
    // we can modify the element
    mutableList[0] = "Praveen"
    // add one more element in the list
    mutableList.add("Abhi")
    for(item in mutableList){
        println(item)
    }
}

输出:

Praveen
Nikhil
Rahul
Abhi

Set – 可变 Set 支持读取和写入功能。我们可以轻松地从集合中添加或删除元素,它将保留元素的顺序。 Kotlin 程序演示可变集:

科特林

fun main(args: Array) {
    var mutableSet = mutableSetOf(6,10)
    // adding elements in set
    mutableSet.add(2)
    mutableSet.add(5)
    for(item in mutableSet){
        println(item)
    }
}

输出:

6
10
2
5

Map – 它是可变的,因此它支持 put、remove、clear 等功能。Kotlin 程序来演示可变映射。

科特林

fun main(args : Array) {
    var mutableMap = mutableMapOf(1 to "Mahipal",2 to "Nikhil",3 to "Rahul")
    // we can modify the element
    mutableMap.put(1,"Praveen")
    // add one more element in the list
    mutableMap.put(4,"Abhi")
    for(item in mutableMap.values){
        println(item)
    }
}

输出:

Praveen
Nikhil
Rahul
Abhi