栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

kotlin基础教程:<6>map集合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kotlin基础教程:<6>map集合

之前我们学习了常用的集合和数组,它们创建的方式、如何获取元素以及遍历的方式,一般来说创建数据结构都可以使用kotlin的类型推导来简化代码:

    //可变的,注意后面的mutable首字母小写
    val list2: MutableList = mutableListOf("孙悟空","猪八戒","沙和尚")
    //1.2 简化写法
    

获取的话可以使用[]的方式等等,遍历就可以想到增强for和foreach,当然不同的数据结构具有不同的遍历特点,需要我们注意区分;

之前我们学习了list集合和array数组,还有一个常用的结合叫做map集合,跟前面两者不同,它用来存储键值对,相信学过编程相关的都是到这个结构,安卓里面常用它来存储用户名和头像;那么这一期我们就来看一看kotlin是如何创建map以及它的一些性质:

有时候我们想要存储一些键值来实现功能,就可以使用map集合:

1、创建,含有可变和不可变map,和前面的集合是一样的,通过类型推导来简化代码也是可以的:

 //3.1 map集合的基本使用
    
    //不可变,使用mapof创建,原始写法
    val map1: Map = mapOf("Tony" to 1,"Jerry" to 2,Pair("Tom",3))
    //可变,mutableMapOf创建,简化写法
    val map2 = mutableMapOf("Tony" to 1,"Jerry" to 2,Pair("Tom",3))
    println(map1)
    println(map2)

创建想要的不可变集合就是(集合of)的方式,创建可变的就是(mutable集合of)的方式;

2、获取到map中的元素,获取到value值的方式很多种,也有Java中的get,而且不会因为数据不存在而崩溃,但是getvalue就是,所以不推荐使用:

 //3.2 获取到元素,map含有四种方式
    //利用运算符重载的方式[],等价于get方式
    println(map1["Tony"])
    println(map1.get("Tony"))
    //我们可以设置没有拿到元素时的默认值,getOrDefault如果有就会拿到
    println(map1.getOrDefault("Tony2", -1))
    //还可以使用来设置没有拿到数据的时候返回的整型数据
    println(map1.getOrElse("Tony1") { -1 })
    //最后一种方式是不推荐的,因为其会出现数据不存在是程序崩溃的情况
    println(map1.getValue("Tony"))

3、遍历map,无非就是foreach和增强for,这是用来遍历数据结构最多的方式:

//3.3 map的遍历,也具有四种方式
    //使用foreach,只有一个参数it覆盖
    println()
    map1.forEach{
        print("${it.key} ${it.value}  ")
    }
    println()
    //使用foreach,具有两个参数覆盖it
    map1.forEach{
        key,value -> print("${key} ${value}  ")
    }
    println()
    //使用foreach,将键和值放在一起
    map1.forEach{
        (k,v)->print("${k} ${v}  ")
    }
    println()
    //使用增强for
    for (entry in map1) {
        print("${entry.key} ${entry.value}  ")
    }
    println()

4、对可变map的增删操作:

//3.4 可变map的增删操作
    //使用运算符重载,可以添加(+=)也可以删除(-=)
    map2 += "aaa" to 123
    //使用[]赋值操作,如果没有这个key就会创建一个
    map2["bbb"] = 888
    //使用put内置函数
    map2.put("CCC",999)
    //使用getorput,如果map中含有该key将会直接返回value,没有则创建
    map2.getOrPut("fff"){555}
    println(map2)

在kotlin里面有一个运算符重载的功能,也是为了简化代码用的,常用在一个增删数据的时候,一般就是+=添加数据,-=删除数据,[]获取数据;

那么这一期就介绍这一个,大家务必要多练习这些数据结构,毕竟安卓开发是需要处理很多数据的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/992115.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号