美文网首页
Kotlin学习笔记 第三篇以及实践小demo

Kotlin学习笔记 第三篇以及实践小demo

作者: 光sail | 来源:发表于2021-05-10 08:22 被阅读0次
    集合list
    val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")for (fruit in list) {
        println(fruit)
    }
    
    • 注意:在这里使用 listOf()函数创建的是一个不可变的集合。在 Java 中没有不可变的集合,但是在 Kotlin 中不可变的集合指的是,该集合中的元素只能用于读取,不能进行添加、修改或者删除。

    • 这么设计的理由和 val、类默认不可继承是一样的,可见 Kotlin 在不可变性方面的控制及其严格。那么如果我们确实需要创建一个可变的集合,可以使用mutableListOf()函数即可。

    val set = setOf("Apple", "Banana", "Orange", "Pear", "Grape")for (fruit in set) {
        println(fruit)
    }
    
    println("==========================")
    val mutableSet = mutableSetOf("Apple", "Banana", "Orange", "Pear", "Grape")
    mutableSet.add("Watermelon")for (fruit in mutableSet) {
        println(fruit)
    }
    
    • List 集合的用法其实和 Set 一模一样,只需要将创建集合的方法换成 setOf()和 mutableSetOf() 即可。
    集合Map
    • Map 和前面的 List 和 Set 有很大的不同,传统的 Map 用法是先创建一个 HashMap 的实例,然后将一个个的键值对添加到 Map 中,比如给每个水果一个对应的编号。
    val map = HashMap<String, Int>()
    map.put("Apple", 1)
    map.put("Banana", 2)
    map.put("Orange", 3)
    map.put("Pear", 4)
    map.put("Grape", 5)
    
    • 这种写法与 Java 中的写法相似,但是在 Kotlin 中并不建议使用 put() 和 get() 方法对 Map 进行添加和读取操作,而是更加建议使用一种类似于数组下标的语法结构,比如向 Map 中添加一条数据可以这么写:
    map["Apple"] = 1
    val number = map["Apple"]//从 Map 中读取一条数据
    //因此可以将代码优化为一下形式
    val map = HashMap<String, Int>()
    map["Apple"] = 1
    map["Banana"] = 2
    map["Orange"] = 3
    map["Pear"] = 4
    map["Grape"] = 5
    
    • 这样的写法也不是最简便的,在 Kotlin 中提供了一个 mapOf() 和 mutableMapOf() 函数来继续简化 Map 的用法。在 mapOf() 函数中,我们可以直接传入初始化的键值对组合来完成对 Map 集合的创建:
    val map = mapOf("Apple" to 1, "Banana" to 2, "Orange" to 3, "Pear" to 4, "Grape" to 5)
     
    
    集合的函数式 API
    • 需求:如何在一个水果集合中找到单词最长的哪个水果?
      传统实现方式:
    val list = mutableListOf("Apple", "Banana", "Orange", "Pear", "Grape")
    var maxLengthFruit = "";for (fruit in list) {
        if (fruit.length > maxLengthFruit.length) {
            maxLengthFruit = fruit
        }
    }
    println("max length fruit is " + maxLengthFruit)
    

    使用集合 API 实现(集合内数据类型必须一致):

    val list = mutableListOf("Apple", "Banana", "Orange", "Pear", "Grape")
    val maxLengthFruit = list.maxBy { it.length }
    println("max length fruit is " + maxLengthFruit)
    

    学习了一些kotlin这些接触,有了些kotlin使用语感,顺手写个kotlin 语言自定义的柱状图实际体验下,下面链接为demo在github的地址
    kotlin 语言自定义的柱状图

    相关文章

      网友评论

          本文标题:Kotlin学习笔记 第三篇以及实践小demo

          本文链接:https://www.haomeiwen.com/subject/hrwudltx.html