博客
关于我
Kotlin_集合
阅读量:276 次
发布时间:2019-03-01

本文共 2221 字,大约阅读时间需要 7 分钟。

Kotlin 列表、集合与映射的比较分析

1. 列表(List)

Kotlin中的List与Java的列表有何不同?

Kotlin中的List与Java的List接口类似,但有以下几点需要注意:

  • 只读性:Kotlin中的listOf创建的列表是只读的,无法修改元素,仅能读取。
  • 可变性:使用mutableListOf创建的列表可变,可以添加元素或修改元素。
  • 与Java兼容性:Kotlin支持Java的List接口,例如ArrayListArrayListOf
  • 以下是通过代码实现的示例:

    fun main(args: Array
    ) {
    // 只读列表
    val list1: List
    = listOf("1", "2", "3")
    list1.forEach { println(it) }
    // 可变列表
    val list2 = mutableListOf("1", "2", "3")
    list2.add("4") // 添加元素
    list2.set(0, "王五") // 修改元素
    // 示例:ArrayList
    val list3 = arrayListOf("2", "3", "4")
    list3.add("4")
    list3.set(0, "11")
    // 自定义 ArrayList
    val list4 = ArrayList
    ()
    list4.add("1")
    }

    结果

  • list1:1, 2, 3
  • list2:4, 2, 3
  • list3:4, 2, 3
  • list4:1
  • 2. 集合(Set)

    Kotlin中的Set与Java的集合有何不同?

    Kotlin中的setOf创建的集合是只读的,无法修改元素,只能读取。使用mutableSetOf则可以实现可变操作。

    与Java类似,Kotlin支持Set接口,例如TreeSet

    以下是代码示例:

    import java.util.TreeSet  
    fun main(args: Array
    ) {
    // 只读集合
    val set1 = setOf("1", "2", "3")
    set1.forEach { println(it) }
    // 可变集合
    val set2 = mutableSetOf
    ()
    set2.add("1")
    set2.add("2")
    set2.forEach { println(it) }
    // 树集合示例
    val t1 = TreeSet
    ()
    t1.add("a")
    t1.add("2")
    t1.add("3")
    t1.forEach { println(it) }
    println(t1)
    }

    结果

  • set1:1, 2, 3
  • set2:1, 2
  • t1:1, 2, 3
  • 3. 映射(Map)

    Kotlin中的Map与Java的映射有何不同?

    Kotlin中的mapOf创建的映射是只读的,无法添加或修改键值对。使用mutableMapOf则可以实现可变操作。

    与Java类似,Kotlin支持Map接口,例如HashMap

    以下是代码示例:

    fun main(args: Array
    ) {
    // 只读映射
    val map1 = mapOf("1" to "2", "2" to "3")
    map1.values.forEach { println(it) }
    // 可变映射
    val map2 = mutableMapOf
    ()
    map2.put("1", "2")
    map2.put("2", "3")
    map2.keys.forEach { println(it) }
    // HashMap 示例
    val hashtable = HashMap
    ()
    hashtable.put("1", "2")
    hashtable.put("2", "3")
    for (value in hashtable.values) {
    println(value)
    }
    }

    结果

  • map1:2, 3
  • map2:1=2, 2=3
  • hashtable:1=2, 2=3
  • 映射遍历示例

    val e1 = map2.entries  
    e1.forEach { println(it) }
    for ((key: String, value: String) in map2) {
    println("key=$key, value=$value")
    }

    结果

    1=2, 2=3
    key=1, value=2
    key=2, value=3

    转载地址:http://npda.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现jump search跳转搜索算法(附完整源码)
    查看>>
    Objective-C实现jumpSearch跳转搜索算法(附完整源码)
    查看>>
    Objective-C实现k nearest neighbours k最近邻分类算法(附完整源码)
    查看>>
    Objective-C实现k-means clustering均值聚类算法(附完整源码)
    查看>>
    Objective-C实现k-Means算法(附完整源码)
    查看>>
    Objective-C实现k-nearest算法(附完整源码)
    查看>>
    Objective-C实现KadaneAlgo计算给定数组的最大连续子数组和算法(附完整源码)
    查看>>
    Objective-C实现kadanes卡达内斯算法(附完整源码)
    查看>>
    Objective-C实现kahns algorithm卡恩算法(附完整源码)
    查看>>
    Objective-C实现karatsuba大数相乘算法(附完整源码)
    查看>>
    Objective-C实现karger算法(附完整源码)
    查看>>
    Objective-C实现KMP搜索算法(附完整源码)
    查看>>
    Objective-C实现Knapsack problem背包问题算法(附完整源码)
    查看>>
    Objective-C实现knapsack背包问题算法(附完整源码)
    查看>>
    Objective-C实现knapsack背包问题算法(附完整源码)
    查看>>
    Objective-C实现knight tour骑士之旅算法(附完整源码)
    查看>>
    Objective-C实现knight Tour骑士之旅算法(附完整源码)
    查看>>
    Objective-C实现KnightTour骑士巡回赛问题算法(附完整源码)
    查看>>
    Objective-C实现KNN算法(附完整源码)
    查看>>
    Objective-C实现KNN算法(附完整源码)
    查看>>