List

和 java 中的 list 几乎一致;

getOrElse 取出对应索引,如果该索引不存在或者为 null,就返回一个 lambda 函数;

getOrNull 取出对应索引,如果找不到就直接返回 null

val lis = listOf("abc", "asd", "qwe")
println(lis.getOrElse(0) { "cant find it" })
println(lis.getOrNull(0) ?: "null")

可变列表

我们默认使用的 listof 创建的列表是无法进行数据改动的;

此时就需要使用可变列表 mutableListOf

val mut = mutableListOf("a","b","c")
mut.add("k")
mut.removeAt(0)

可变列表和不可变列表还可以使用方法进行相互转换;

mut.toList(); // 转为不可变列表
mut.toMutableList(); // 再转回可变列表

mutator

任何可变列表都具有此属性;

我们可以直接使用运算符进行列表元素的增删;

removeIf 表示移除掉符合条件的指定元素

mut  = "tom"
mut -= "tom"
mut.removeIf { it.contains("tom") }

遍历

目前有三种遍历方式,优缺点自己判断;

不做过多解释,看代码就懂了

for (str: String in mut) {
    println(str)
}
mut.forEach {
    println(it)
}
mut.forEachIndexed { index: Int, s: String ->
    println("$index   $s")
}

set

set 集合中的元素会自动去重!

检索 set 中的元素需要使用

val setdemo = setOf("asd", "wqe", "asd")
println(setdemo.elementAt(0))

可变集合

和可变列表一致,依葫芦画瓢即可;

val setmut = mutableSetOf("son","son","sun")
setmut  = "damn"
setmut -= "son"

快速去重

目前有俩种方式:

list 转为 set 然后再转回 list;

使用函数 distinct

// 二次转换去重
val lis = mutableListOf("apple", "pear", "pear")
lis.toSet().toList()
// 函数去重
lis.distinct()

列表类型的转换

可以直接将列表转换为数组

val intarr = intArrayOf(1, 2, 3)
val intlist = listOf(1, 2, 3).toIntArray()

map

映射表

下面展示了两种获取指定 key 的 value 的方法

可变映射表这里不说了

    val m = mapOf("map1" to "asd", "map2" to "qwe")
    println(m.getValue("map1"))
    println(m["map2"])

到此这篇关于Kotlin List与Set和Map实例讲解的文章就介绍到这了,更多相关Kotlin List Set Map内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Kotlin List与Set和Map实例讲解的更多相关文章

  1. Swift 字符串替换/过滤/切割/拼接

    替换为/结果过滤过滤掉单个字符/结果过滤掉开头和结尾的空白结果切割对字符串使用/作为分隔符来切割,不允许空字符串使用split函数结果是一个数组对字符串使用/作为分隔符来切割,允许空字符串结果拼接结果

  2. Swift开发教程--字符串的操作

    替换把?替换为/结果

  3. swift 网络搜索热词排行

    1.使用www.showapi.com上的接口,需要注册添加一个App,这样才能获取appid和secret密钥,调用前需要订购套餐(选免费的就可以了);2.外部库Podfile文件内容,SnapKit这里暂时不需要用到:3.桥接头文件参考:http://www.jb51.cc/article/p-pcleyxep-te.html4.AppTransportSecurityhasblockedac

  4. 如何在Swift中打乱数组?

    如何随机化或混洗Swift中的数组中的元素?例如,如果我的数组包括52张扑克牌,我想洗牌,以便洗牌。这个答案详细说明了如何在Swift的各种版本中添加Fisher-Yatesshuffle。Swift3版本是最宽松的,但是它们至少可以用于数组。每个Swift版本的命名和行为与该版本的mutating和nonmutating排序方法相匹配。

  5. Kotlin难点解析:extension和this指针

    扩展是Kotlin语言中使用非常简单的一个特性。关于这个问题,其实我之前的一篇文章[[Kotlin]LambdaandExtension](https://www.jianshu.com/p/d7a...中有提到过。为了解决这个问题,官方提出了两个新的概念:dispatchreceiver和extensionreceiver。extensionreceiver:中文翻译为扩展接收者。为了简化,这里我们将dispatchreceiver简称为DR,将extensionreceiver简称为ER。如果你习惯了

  6. unit-testing – 如何在Swift中对NSFetchedResultsController进行单元测试

    我有一个Swift应用程序,它使用NSFetchedResultsController从持久存储中获取List对象:它的工作方式与预期的一样,我将List对象描述打印到控制台.我想为我的应用程序编写一些单元测试,所以我创建了扩展XCTestCase的类.代码编译没有问题,测试运行,但不幸的是我无法在该上下文中获取List对象.我在控制台中获得的所有内容都是List对象的数量和致命错误:线路上升:我

  7. swift – 检查自定义对象数组是否包含特定的自定义对象

    说我有一个非常简单的Person类我希望将一个这样的人的集合存储在一个属性中,该属性是一个Person类的数组,类型为Person也许我实现如下问题:我如何检查people.list是否包含实例alex,好吗?

  8. swift – 使用反射来设置对象属性,而不使用setValue forKey

    在Swift中,不可能使用.setValue(…)>可空类型字段,如Int?>具有枚举类型的属性>一个可空对象的数组,如[MyObject?]这有一个解决方法,也就是通过覆盖对象本身中的UnVersionKey方法的setValue.因为我正在写一个基于反射的通用对象映射器.请参阅EVReflection我想尽量减少这种手动映射.是否有其他方式自动设置这些属性?

  9. Swift Sliceable上的递归

    事实证明,有一个通用的解决方案.您需要添加这些通用要求:对于发布的问题,这给出了:这是任何切片上有用的通用缩减:我不能相信这一点,Apple开发论坛上的解决方案是posted.令人遗憾的是,通用要求如此涉及到这样一个基本操作–它几乎不直观!

  10. uitableview – 使用Swift的“使用未解析的标识符”

    我正在重写我在Swift中的一个应用程序,它显示SouthKohala的实时天气数据.爱Swift到目前为止!

随机推荐

  1. Flutter 网络请求框架封装详解

    这篇文章主要介绍了Flutter 网络请求框架封装详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. Android单选按钮RadioButton的使用详解

    今天小编就为大家分享一篇关于Android单选按钮RadioButton的使用详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

  3. 解决android studio 打包发现generate signed apk 消失不见问题

    这篇文章主要介绍了解决android studio 打包发现generate signed apk 消失不见问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  4. Android 实现自定义圆形listview功能的实例代码

    这篇文章主要介绍了Android 实现自定义圆形listview功能的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. 详解Android studio 动态fragment的用法

    这篇文章主要介绍了Android studio 动态fragment的用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. Android用RecyclerView实现图标拖拽排序以及增删管理

    这篇文章主要介绍了Android用RecyclerView实现图标拖拽排序以及增删管理的方法,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下

  7. Android notifyDataSetChanged() 动态更新ListView案例详解

    这篇文章主要介绍了Android notifyDataSetChanged() 动态更新ListView案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

  8. Android自定义View实现弹幕效果

    这篇文章主要为大家详细介绍了Android自定义View实现弹幕效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. Android自定义View实现跟随手指移动

    这篇文章主要为大家详细介绍了Android自定义View实现跟随手指移动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. Android实现多点触摸操作

    这篇文章主要介绍了Android实现多点触摸操作,实现图片的放大、缩小和旋转等处理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部