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])//角标越界不会抛出异常,而是返回一个nullprintln(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 -= 5mutableList.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 += 4mutableSet -= 2mutableSet.remove(3)mutableSet.removeIf { it==4 }

3)list和set相互转换

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

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

6.数组类型

    //ByteArrayval byteArray = byteArrayOf(1,2,3)//IntArrayval array = intArrayOf(1, 2, 3)//CharArrayval 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相关推荐

  1. 【Kotlin】Kotlin 语言集合中的高阶函数详解 ( 数据类 data class | maxBy | minBy | filter | map | any | count | find )

    文章目录 I . List 集合高阶函数引入 II . Kotlin 数据类 ( data class ) III . Java 代码 与 Kotlin 代码实现对比 ( 查询年龄最大的 ) IV . ...

  2. 6.3 Kotlin集合类型之Map、MutableMap

    Kotlin集合类型之Map.MutableMap Map 声明和创建Map集合 Map常用函数 Kotlin MutableMap 声明和创建MutableMap MutableMap常用函数 Ha ...

  3. 学习Kotlin(八)其他技术

    推荐阅读: 学习Kotlin(一)为什么使用Kotlin 学习Kotlin(二)基本语法 学习Kotlin(三)类和接口 学习Kotlin(四)对象与泛型 学习Kotlin(五)函数与Lambda表达 ...

  4. 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 find 方法遍历 map 集合 | 代码示例 )

    文章目录 一.使用 map 集合的 find 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 find 方法遍历 map 集合 使用 map 集合的 find 方法遍历 map 集合 ...

  5. 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )

    文章目录 一.使用 map 集合的 each 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 each 方法遍历 map 集合 遍历 map 集合 , 可以调用 map 集合的 eac ...

  6. java 定义map集合_java基础-Map集合

    java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...

  7. Kotlin学习笔记--Kotlin之集合

    Kotlin学习笔记--Kotlin之集合 集合类 1. List 集合 1.1 不可变list 1.2 可变list MutableList 1.3 集合遍历 1.4 List的操作函数 1.5 l ...

  8. 集合list set Map问题

    2019独角兽企业重金招聘Python工程师标准>>> ####集合list set Map的个人理解 首先集合说的对一类数据的存储容器,对象都是引用类型并不是基本数据类型 coll ...

  9. 【C++ 语言】容器 ( queue 队列 | stack 栈 | priority_queue 优先级队列 | set 集合 | 容器遍历 | map )

    文章目录 queue 队列 stack 栈 priority_queue 优先级队列 priority_queue 优先级队列指定排序方法 priority_queue 优先级队列排序行为 prior ...

最新文章

  1. 验证码 禁止输入中文
  2. 探偵ガリレオーくさる3
  3. MySQL社区版的下载和安装
  4. python画函数图像要用到的模块_教你如何绘制数学函数图像——numpy和matplotlib的简单应用...
  5. KindEditor解决上传视频不能在手机端显示的问题
  6. 离开职场3年的宝妈,是该重回职场,还是自己创业呢?
  7. jquery解析php json,Jquery解析json数据详解_jquery
  8. Linux系统下的软件安装
  9. 华硕笔记本linux触摸板驱动,华硕触摸板驱动_华硕a豆笔记本触摸板驱动下载安装 v11.0.0.30 官方正式版-126g驱动网...
  10. 黑白群晖为Plex添加证书,开启HTTPS访问
  11. PyQt+PyQtWebEngine+Spyder问题小结
  12. android刷步工具,公益步数刷步助手
  13. 五类、超五、六类、超六类网线
  14. Unity Editor 编辑器扩展 九 Gizmos
  15. html涂鸦画板插件,sketchpad-简单的HTML5 Canvas涂鸦画板插件 -HTML5功能
  16. 台式计算机输入设备,简述常用的输入设备和输出设备有哪些 – 手机爱问
  17. Windows7下IPV6设置方法详解
  18. 使用java+OpenCV进行图片对比并标记差异部分(支持中文图片路径)
  19. 二级域名的创建、简单配置域名解析
  20. Spring cacheable

热门文章

  1. win10设置防火墙端口开放及检测开放端口
  2. AppsFlyer 研究(十六)广告平台配置及代理商授权总结
  3. vue判断是否双击_vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作...
  4. 异动分析(四)利用Python计算指标贡献度
  5. DLL/EXE查看工具Dumpbin
  6. AspectJ 使用介绍
  7. Mindjet MindManager 2021思维导图Keygen教程分享
  8. 情感障碍学计算机好吗,AI系统怎么帮助双相情感障碍患者
  9. 2020 年最受程序员欢迎的 20 个 CSS 框架,有没有你的菜?
  10. 想开发DAYU200,我教你