美文网首页
[日更][09]-Kotlin

[日更][09]-Kotlin

作者: 代码多哥 | 来源:发表于2023-08-18 08:55 被阅读0次

因为时间很短,所以内容不是很复杂,写一个有价值的小知识,主要是为了保持每日学习和写作的习惯,大作还是会写到相关的主题里面,尽量做到周更。敬请关注本人的主要作品集:

一路向下之AOSP研究

为了能够最大限度的保证文章的质量,日更主要采用翻译的方法来完成。本系列将主要翻译Kotlin官网的内容。具体的地址

https://kotlinlang.org/docs/home.html

八 集合-Map

Map将项目存储为键值对。您可以通过引用键来访问该值。你可以把Map想象成食物菜单。你可以通过找到你想吃的食物(Key)来找到价格(Value)。如果您想在不使用数字索引的情况下(像列表一样)查找值,则Map非常有用。

  • Map中的键都必须是唯一的,这样Kotlin才能理解您想要获得的值。
  • Map中的值中可以重复。

要创建只读Map,请使用mapOf()函数。
要创建可变MutableMap,请使用mutableMapOf()函数。

在创建Map时,Kotlin可以推断存储的项目的类型。要显式声明类型,请在Map声明后添加尖括号<>内的键和值的类型。例如:MutableMap<String,Int>。键的类型为String,值的类型为Int。

创建映射的最简单方法是在每个键及其相关值之间使用to:


val readOnlyJuiceMenu = mapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
println(readOnlyJuiceMenu)
// {apple=100, kiwi=190, orange=100}

// Mutable map with explicit type declaration
val juiceMenu: MutableMap<String, Int> = mutableMapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
println(juiceMenu)
// {apple=100, kiwi=190, orange=100}

为了防止不必要的修改,通过将MutableMap强制转换为Map来获得MutableMap的只读视图:

val juiceMenu: MutableMap<String, Int> = mutableMapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
val juiceMenuLocked: Map<String, Int> = juiceMenu

要访问Map中的值,请使用带索引的访问运算符[]及其键:

// Read-only map
val readOnlyJuiceMenu = mapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
println("The value of apple juice is: ${readOnlyJuiceMenu["apple"]}")
// The value of apple juice is: 100

要获取Map中的项数,请使用.count()函数:

// Read-only map
val readOnlyJuiceMenu = mapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
println("This map has ${readOnlyJuiceMenu.count()} key-value pairs")
// This map has 3 key-value pairs

要在MutableMap中添加或删除项,请分别使用.put()和.remove()函数:

val juiceMenu: MutableMap<String, Int> = mutableMapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
juiceMenu.put("coconut", 150) // Add key "coconut" with value 150 to the map
println(juiceMenu)
// {apple=100, kiwi=190, orange=100, coconut=150}

juiceMenu.remove("orange")    // Remove key "orange" from the map
println(juiceMenu)
// {apple=100, kiwi=190, coconut=150}

若要检查Map中是否已包含特定键,请使用.contentsKey()函数:

val readOnlyJuiceMenu = mapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
println(readOnlyJuiceMenu.containsKey("kiwi"))
// true

要获得Map的键或值的集合,请分别使用keys和values:

val readOnlyJuiceMenu = mapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
println(readOnlyJuiceMenu.keys)
// [apple, kiwi, orange]
println(readOnlyJuiceMenu.values)
// [100, 190, 100]

keys和values是对象属性的示例。若要访问对象的属性,请在对象后面写上属性名称并附加句点。属性在类一章中有更详细的讨论。此时,您只需要知道如何访问它们。

要检查键或值是否在映射中,请使用in运算符:

val readOnlyJuiceMenu = mapOf("apple" to 100, "kiwi" to 190, "orange" to 100)
println("orange" in readOnlyJuiceMenu.keys)
// true
println(200 in readOnlyJuiceMenu.values)

有关如何处理集合的详细信息,请参考 Collections.。

译者注释:

  • to 并不是kotln的一个关键字,而是一个扩展方法。它将两个对象转换成一个Pair对象,从而用于构造Map

相关文章

  • Android学习Kotlin之一、常量-条件-函数-高阶函数

    Kotlin Java相对于Kotlin对比,Java的语法太繁琐,Kotlin更现代化, 语法更方便简洁, 可以...

  • android面试基础汇集

    Kotlin Kotlin跟Java比,kotlin具有哪些优势?1、Kotlin语言简练,2、更安全,Kotli...

  • kotlin-第三章(类与对象)

    构造函数 访问修饰符 伴生对象 单例类 动态代理 kotlin中特有的类 09:kotlin的构造函数 kotli...

  • Kotlin开发基础(一)

    作者: Aaron主页: http://www.wxtlife.com/2017/09/08/kotlin-s...

  • Kotlin使用ButterKnife

    注意:把 改成: kotlin支持java友情提示:用kotlin开发就不用butterknife啦,kotlin更方便

  • kotlin try catch使用方法

    5 kotlin之 try catch kotlin的try catch比Java更简洁面料采用,使用更方便 喜欢...

  • 王坤(坤哥):日更200篇题记

    2017-09-09人人合伙 王坤(坤哥) 日更200篇 今天是坚持日更的第200天,这正是当初给自己定的小目...

  • kotlin class constructor的使用

    6 kotlin之class kotlin的class比Java更简洁面料采用,使用更方便,类似于方法直接写上参数...

  • 日更09

    2018年11月9日,星期五,晴 有些感情,就像你特别垂涎的一种食物,它放在橱窗里的时候看起来色香味俱全,可你尝它...

  • 日更09

    我喜欢“刻意”这俩字,每天的固定闹钟把自己吵醒,然后起床打卡,接着脑子里想着开始做自己喜欢的事——写写东西、磨磨耳...

网友评论

      本文标题:[日更][09]-Kotlin

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