iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Kotlin集合ListSetMap使用介绍详解
  • 248
分享到

Kotlin集合ListSetMap使用介绍详解

2024-04-02 19:04:59 248人浏览 薄情痞子
摘要

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

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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Kotlin集合ListSetMap使用介绍详解

本文链接: https://www.lsjlt.com/news/166921.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Kotlin集合ListSetMap使用介绍详解
    1.在Kotlin中可以通过以下方式创建ArrayList、LinkedList、HashSet、HashMap等。 val arrayList = ArrayList<...
    99+
    2024-04-02
  • Kotlin泛型的使用介绍
    1.泛型类、泛型函数 1)泛型类可以接收任意类型。Package<T>(t: T) 2)泛型类中定义的泛型参数<T>,通常用T(Type)表示,(t: T) ...
    99+
    2024-04-02
  • Kotlin ContentProvider使用方法介绍
    目录1、注册ContentProvider2、内容URI内容URI的标准格式通配符3、创建自己的ContentProvider4、访问其他程序中的数据1、注册ContentProvi...
    99+
    2024-04-02
  • 详细介绍Python中的set集合
    目录Python中的set集合一、集合是什么?二、set集合怎么用?1、创建set集合2、删除set集合3、访问set集合元素4、删除集合中的元素5、向集合中添加元素三、set集合的...
    99+
    2024-04-02
  • Kotlin作用域函数使用示例详细介绍
    目录1 let2 run3 with4 apply5 also这里我们将介绍Kotlin 5个作用域函数:let,run,with,apply,also。 1 let let 可用于...
    99+
    2023-02-17
    Kotlin作用域函数 Kotlin作用域
  • Kotlin匿名函数使用介绍
    目录1.函数的声明2.函数参数3.Unit函数4.匿名函数5.匿名函数的参数6.lambda表达式7.定义参数8.匿名函数9.函数的引用10.函数类型作为返回类型1.函数的声明 ko...
    99+
    2024-04-02
  • ES6中Set与WeakSet集合详细介绍
    这篇文章主要讲解了“ES6中Set与WeakSet集合详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ES6中Set与WeakSet集合详细介绍”吧!目录Set是值永不重复的特殊集合S...
    99+
    2023-06-20
  • Kotlin语言使用WebView示例介绍
    目录1、WebView类提供的常用方法2、WebView的简单用法实现浏览网页1、启用JavaScript的支持2、目标的网页仍然在当前WebView中显示3、将网址传入3、结合We...
    99+
    2024-04-02
  • Kotlin语言使用BroadcastReceiver示例介绍
    目录一、动态注册和静态注册二、自定义广播1.方法解析2.发送标准广播一、动态注册和静态注册 动态注册:在代码中注册 动态注册能监听到大部分的系统广播和自定义的广播(都为隐式广播) 步...
    99+
    2024-04-02
  • Kotlin作用域函数应用详细介绍
    目录1.前置知识2.使用3.源码赏析3.1 let和run3.2 also和apply3.3 repeat3.4 with4.反编译5.小结平时看博客或者学知识,学到的东西比较零散,...
    99+
    2024-04-02
  • 详解IdentityServer4介绍和使用
    目录一、概述1、OpenID认证用户的流程2、OAuth认证用户的流程3、IdentityServer4对象二、IdentityServer4实践1、构建非持久化认证服务项目2、构建...
    99+
    2024-04-02
  • Kotlin中@JvmOverloads注解作用示例介绍
    在Kotlin中@JvmOverloads注解的作用:指示Kotlin编译器为此函数生成替换默认参数值的重载。 如果一个方法有N个参数,其中M个具有默认值,则会生成M个重载。 第一个...
    99+
    2024-04-02
  • 详解介绍Golang中的方法集
    Go语言是一门新兴的编程语言,优雅、高效、简洁的特点吸引了众多程序员的关注。Go语言在语法、平台支持、性能等多个方面优秀,在数据处理、高并发编程、Web编程等领域得到广泛应用,并具有极高的扩展性。Golang中的方法集是许多开发者不太熟悉的...
    99+
    2023-05-14
  • TKMybatis的介绍和使用详解
    目录一、什么是 TKMybatis二、TKMybatis 使用2.1 Springboot 项目中加入依赖2.2 使用讲解2.3 实际案例三、扩展介绍泛型(实体类)的类型必须符合要求...
    99+
    2024-04-02
  • React Fragment介绍与使用详解
    目录前言 Fragments出现动机 React Fragment介绍与使用 <React.Fragment> 与 <>区别 前言 在向 DOM 树批量添加...
    99+
    2024-04-02
  • Java关于List集合去重方案详细介绍
    1 常规去重 碰到List去重的问题,除了遍历去重,我们常常想到利用Set集合不允许重复元素的特点,通过List和Set互转,来去掉重复元素。 // 遍历后判断赋给另一个List...
    99+
    2024-04-02
  • PHP——thinkphp5的详解介绍与使用
    ThinkPHP5是一款基于PHP语言的轻量级开源框架,它具有简单、高效、灵活、安全等特点,非常适合快速开发Web应用程序。一、Th...
    99+
    2023-08-25
    PHP
  • Kotlin线程的桥接与切换使用介绍
    目录一.线程的桥接1.runBlocking方法2.BlockingCoroutine类二.线程的切换1.withContext方法2.startUndispatchedOrRetu...
    99+
    2024-04-02
  • Kotlin中Object关键字的使用示例介绍
    目录1.定义单例类2.对象表达式3.伴生对象在kotlin中的超类是Any,并没有使用Java中的Object关键字表示超类。 在Kotlin中Object关键字,另有作用。 1.定...
    99+
    2024-04-02
  • Maven继承与聚合详解及作用介绍
    目录一、继承引言1. 继承关系的实现2. 依赖配置二、聚合引言实现聚合三、继承与聚合的合并一、继承 引言 继承关系可以对不同模块的依赖版本做统一管理,因为子模块中的依赖基本都继承于父...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作