阅读 17

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

集合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 语言自定义的柱状图

作者:光sail

原文链接:https://www.jianshu.com/p/bc40a0cd6b0c

文章分类
后端
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 gxwowoo@163.com 举报,一经查实,本站将立刻删除。
相关推荐