Kotlin入门笔记(八)集合 与 遍历
前言:本教程最好在有JAVA的基础下进行学习
一、List集合
ListOf()
按 Java 的 List 写法,Kotlin 应该:
val list = ArrayList<String>()
list.add("Apple")
list.add("Banana")
list.add("Orange")
list.add("Pear")
list.add("Grape")
但是 Kotlin 专门内置的 listOf() 函数来简化初始化集合的写法:
val list = listOf("Apple","Banana","Orange","Pear","Grape")
可以用 for-in 循环进行遍历。
fun main() {val list = listOf("Apple","Banana","Orange","Pear","Grape")for (fruit in list) {println(fruit)}
}
不过需要注意的是,listOf() 函数创建的是一个不可变的集合。(无法对集合进行添加、修改或删除操作)
mutableListOf()
这样设计与 val 关键字、类不可继承 的设计初衷是类似的,Kotlin在不可变方面控制极其严格。如果创建一个可变集合,可以使用 mutableListOf() 函数就可以了,示例如下:
fun main() {val list = mutableListOf("Apple","Banana","Orange","Pear","Grape")list.add("Watermenol")for (fruit in list) {println(fruit)}
}
这里先使用 mutableListOf() 函数创建一个可变的集合,然后向集合中添加了一个新的水果,最后再使用 for-in 循环对集合进行遍历。
(2) Set 集合
setOf()
val set = setOf("Apple","Banana","Orange","Pear","Grape")
for (fruit in set) {println(fruit)
}
mutableSetOf()
Set的 setOf() 和 mutableSetOf() 与 List集合的 listOf() 和 mutableListOf() 大致用法一样,不过多赘述。
需要注意的是, Set 底层是使用 hash 映射机制来存放数据的,因此集合中的元素无法保证有序,这是和 List 最大的不同之处。
Map集合
Map 是一种 “ 键值对 ” 形式的数据结构,因此再用法上与 List、Set 集合区别较大。
按照Java的写法:
val map = HashMap<String , Int>()
map.put("Apple",1)
map.put("Banana",2)
map.put("Orange",3)
map.put("Pear",4)
map.put("Grape",5)
但是在 Kotlin 中更推荐使用类似数组下标的语法结构,
比如向 Map 中添加一条数据可以这么写:
map["Apple"] = 1
读取 Map 中的结构可以这么写:
val num = map["Apple"]
因此,上述代码可以写成:
val map = HashMap<String , Int>()
map["Apple"] = 1
map["Banana"] = 2
map["Orange"] = 3
map["Pear"] = 4
map["Grape"] = 5
但是,按照 Kotlin 一向的作风 . . . 。没错,它提供了一对 mapOf() 与 mutableMapOf() 函数来继续简化 Map 的用法。在 mapOf() 中,我们可以直接传入初始化的键值对组合来完成对 Map 集合的创建:
val map = mapOf ("Apple" to 1 , "Banana" to 2 , "Orange" to 3 , "Pear" to 4 , "Grape" to 5)
这里的键值对组合看上去好像是用 to 这个关键字来进行关联的,但其实 to 并不是关键字,而是一个 infix 函数(这个暂时放放,会在后面讨论)
fun main() {val map = mapOf("Apple" to 1 , "Banana" to 2 , "Orange" to 3 , "Pear" to 4 , "Grape" to 5)for((fruit , number) in map) {println("fruit is " + fruit + ", number is " + number)}
}
如果喜欢这个系列的话,不妨点个关注吧!感谢您的观看!
参考:
《第一行代码 Android (第三版)》 ---郭霖
Kotlin入门笔记(八)集合 与 遍历相关推荐
- kotlin入门笔记
为什么使用Kotlin 网上关于kotlin的讨论已经热了一个多月了,究竟怎么看待这门语言在Android开发中的应用前景,我觉得还是要留给时间去验证."我思故我在",自己的思考在 ...
- Kotlin入门笔记(二) Kotlin 函数的简单介绍
前言:本教程最好在有JAVA的基础下进行学习 一.main函数的使用 (1) 学过java的小伙伴们应该知道,java的main方法是静态的,且写在class中.Kotlin就有所不同,一般的写法可以 ...
- opencv 入门笔记十 图片序列保存为视频
1.代码: 其中:视频格式设置请看这篇:opencv 入门笔记三(采集视频,保存视频)_Newjet666的博客-CSDN博客 其中:读取图片并画框请看这篇: opencv 入门笔记八 文件夹读取图片 ...
- Kotlin学习笔记 第四章 解构声明 集合集合的扩展方法 Range 异常 Throw关键字
参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...
- Kotlin入门(16)容器的遍历方式
Kotlin号称全面兼容Java,于是乎Java的容器类仍可在Kotlin中正常使用,包括大家熟悉的队列ArrayList.映射HashMap等等.不过Kotlin作为一门全新的语言,肯定还是要有自己 ...
- 深度学习入门笔记(十八):卷积神经网络(一)
欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...
- Kotlin学习笔记四、集合set-容器list-映射map相关
一.概述. Kotlin中的容器分三类,分别是集合Set.队列List.映射Map,跟Java的集合set.list.map一一对应.但是kotlin里面的容器又分为只读和可变两种类型.区别在于该容器 ...
- Kotlin学习笔记--Kotlin之集合
Kotlin学习笔记--Kotlin之集合 集合类 1. List 集合 1.1 不可变list 1.2 可变list MutableList 1.3 集合遍历 1.4 List的操作函数 1.5 l ...
- Kotlin 学习笔记(八)—— Kotlin类与对象之接口
Kotlin 学习笔记(八)-- Kotlin类与对象之接口 Kotlin学习笔记系列教程 Kotlin 学习笔记(一)-- 概述.学习曲线.开发工具.参考资料 Kotlin 学习笔记(二)-- 基础 ...
最新文章
- .net core 中的[FromBody]
- FPGA(5)数码管静态显示与动态显示
- resnet keras 结构_Wandb用起来,一行Python代码实现Keras模型可视化
- 11-Memory Management Examples
- css如何各种中文字体如雅黑、黑体、宋体、楷体等等
- mybatis集成 Invalid bound statement (not found)
- Mysql——Innodb和Myisam概念与数据恢复
- Xshell安装sql报错:······ RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#3a79bd29)
- tc/traffic control 网络控制工具
- python类与对象做项目_python 类和对象
- VC ado连接数据库
- Service Mesh简史
- x201 温度过高 反应慢 硬盘搜索时更慢更热 为什么呢?
- Android 和iOS 比较
- Cocos2d JS 之消灭星星(十) 关卡配置
- Java基础002 Java9开发环境搭建(Win10平台)
- XUI框架圆角带图片 ButtonView
- 计算机不联网会有ip地址吗,不联网的电脑有ip地址吗
- MOS电平转换电路 stm32的I2C电平转换电路 IIC电平转换电路
- Python将英文标点替换成空格