我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Kotlin集合ListSetMap使用介绍详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Kotlin集合ListSetMap使用介绍详解

1.在Kotlin中可以通过以下方式创建ArrayList、LinkedList、HashSet、HashMap等。

    val arrayList = ArrayList<String>()
    val linkedList = LinkedList<String>()
    val hashSet = HashSet<String>()
    val hashMap = HashMap<String,Int>()

2.除了上面的方式,Kotlin还提供了其他创建集合的方法。

1)创建不可变集合。

之所以是不可变的,是因为Kotlin针对这种方式创建的集合,不提供set,remove,add的方法。只提供了get方法。

 val list = listOf<Int>(1, 2, 3)
 val set = setOf<Int>(1, 2, 3)
 val map = mapOf(1 to "Jack", 2 to "Rose")

2)创建可以变集合。通过mutable创建的集合就是可变集合,可以对集合进行add set remove操作。

 val mutableList = mutableListOf<Int>(1, 2, 3)
 val mutableSet = mutableSetOf<Int>(1, 2, 3)
 val mutableMap = mutableMapOf(1 to "Jack", 2 to "Rose")

3.对List的操作。

    val list = listOf<Int>(1, 2, 3)
    //通常get的方式
    println(list.get(1))
    //之所以能使用[]类似数组的方式获取,是因为做了[]运算符重载,后面会讲到。
    println(list[1])
    //角标越界不会抛出异常,而是返回一个null
    println(list.getOrNull(3))
    //通过?:空合并操作符,?:左边的值为空,则返回右边的值
    println(list.getOrNull(3) ?: -1)
    //如果角标越界,不会抛出异常。而是返回{}lambda表达式中的值
    println(list.getOrElse(3) { -1 })

1)通常通过get(index)来获取:

list.get(1)

2)也可以通过[index],像操作数组那样获取。之所以可以用[]来获取,是因为做了运算符重载。

list[1]

3)getOrNull,如果发生角标越界,不会抛出异常而是返回null。可以和?:空合并操作符结合起来使用,返回一个默认值。?:左边的值为空,则返回右边的值

list.getOrNull(3)
list.getOrNull(3) ?: -1

4)getOrElse接收两个参数,第一个索引值,第二个lambda表达式。如果角标越界,不会抛出异常,而是返回lambda表达式中的值。

  list.getOrElse(3) { -1 }

5)可变集合:

 val mutableList = mutableListOf<Int>(1, 2, 3)

set操作

   mutableList.set(1,2)
   mutableList[1] = 2

add操作

 mutableList.add(4)
 mutableList += 5

remove操作 :-=运算符重载,删除的是元素的值

    mutableList -= 5
    mutableList.remove(5)

removeIf 接收一个lambda表达式,可以根据表达式中的条件进行删除。

 mutableList.removeIf { it == 4 }
mutableList.removeIf { it.contains("H")}

6)List集合的遍历

可以用in遍历。

forEach 接收一个lambda表达式,会把集合中的元素传进来。

forEachIndexed接收一个lambda表达式,有两个参数,一个是index另外一个是对应的value

    for (item in list) {
        println(item)
    }
    list.forEach {
        println(it)
    }
    list.forEachIndexed { index, value ->
        println("$index , $value")
    }

4.list集合的解构:

可以通过_过滤掉不想要的元素。

 val (first:Int,second:Int,third:Int) = listOf<Int>(1, 2, 3)
 val (first: Int, _, third: Int) = listOf<Int>(1, 2, 3)
 println("$first  $third")

5.set集合

1)set的获取方式和list类似

    val set = setOf<Int>(1, 2, 3)
    set.elementAt(1)
    set.elementAtOrElse(1) { -1 }
    set.elementAtOrNull(1)

2)可变set集合

    val mutableSet = mutableSetOf<Int>(1, 2, 3)
    mutableSet += 4
    mutableSet -= 2
    mutableSet.remove(3)
    mutableSet.removeIf { it==4 }

3)list和set相互转换

list转为set,可以去除重复元素。set中是不允许重复的。

   val list =  mutableSet.toList();
   val set =  mutableList.toSet();

6.数组类型

    //ByteArray
    val byteArray = byteArrayOf(1,2,3)
    //IntArray
    val array = intArrayOf(1, 2, 3)
    //CharArray
    val charArray = charArrayOf('a','b','c')

7.map集合

1)map集合的创建

Pari对象,存放的就是key value

val map = mapOf(Pair(1, "HanMei"), Pair(2, "LiLei"))

to看起来像一个关键子,其实to是一个函数。这种写法,后面会讲到。

val map = mapOf(1 to "HanMei", 2 to "LiLei")

创建可变map

val mutableMap = mutableMapOf(1 to "HanMei", 2 to "LiLei")

2)map的get操作

    println(map[1])
    println(map.getValue(1))
    println(map.getOrDefault(1, "Default"))
    println(map.getOrElse(1) { "default" })

3)map的遍历

  map.forEach {
        println("%$it.key , ${it.value}")
    }
  map.forEach { (key, value) -> println("$key ,$value") }

4)可变map的增删改

   val mutableMap = mutableMapOf(1 to "HanMei", 2 to "LiLei")
    mutableMap += 3 to "XiaoHua"
    mutableMap.put(4, "XiaoHua")
    mutableMap.getOrPut(5) { "XiaoHua" }
    val getValue:()->String = {
        "value"
    }
    mutableMap.getOrPut(5) {getValue()}

到此这篇关于Kotlin集合List Set Map使用介绍详解的文章就介绍到这了,更多相关Kotlin List Set Map内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Kotlin集合ListSetMap使用介绍详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Kotlin作用域函数使用示例详细介绍

作用域函数:是Kotlin标准库中的内联函数,作用在对象上时,执行给定的block代码块。可以在block代码块中通过it,this代表当前对象,进行代码逻辑处理
2023-02-17

常用Windows 8操作小技巧集合详细介绍

微软Windows 8操作系统来了,今天我们想和大家分享12则Win8技巧:查询天气、拼写检查、休眠或睡眠。希望对你有所帮助。1、Metro主屏 当用户登录Windows 8系统之后,新的Metro启动屏幕就会出现,上面铺满了瓦片式的程序。
2022-06-04

Python JWT 介绍和使用详解

1. JWT 介绍 jwt( JSON Web Tokens ),是一种开发的行业标准 RFC 7519 ,用于安全的表示双方之间的声明。目前,jwt广泛应用在系统的用户认证方面,特别是现在前后端分离项目 jwt认证流程:在项目开发中,一般
2022-06-02

PHP——thinkphp5的详解介绍与使用

ThinkPHP5是一款基于PHP语言的轻量级开源框架,它具有简单、高效、灵活、安全等特点,非常适合快速开发Web应用程序。一、ThinkPHP5的特点1. 简单易用:ThinkPHP5采用简洁的代码风格和设计模式,使开发者能够更快速地上手
2023-08-25

libmp3lame及API介绍和使用详解

这篇文章主要为大家介绍了libmp3lame及API介绍和使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-18

Java注解的介绍和使用详细讲解

文章目录 注解注解基本介绍自定义注解元注解注解解析 注解 注解基本介绍 注解概述: Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、构造器、方法
2023-08-16

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录