前言:本教程最好在有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入门笔记(八)集合 与 遍历相关推荐

  1. kotlin入门笔记

    为什么使用Kotlin 网上关于kotlin的讨论已经热了一个多月了,究竟怎么看待这门语言在Android开发中的应用前景,我觉得还是要留给时间去验证."我思故我在",自己的思考在 ...

  2. Kotlin入门笔记(二) Kotlin 函数的简单介绍

    前言:本教程最好在有JAVA的基础下进行学习 一.main函数的使用 (1) 学过java的小伙伴们应该知道,java的main方法是静态的,且写在class中.Kotlin就有所不同,一般的写法可以 ...

  3. opencv 入门笔记十 图片序列保存为视频

    1.代码: 其中:视频格式设置请看这篇:opencv 入门笔记三(采集视频,保存视频)_Newjet666的博客-CSDN博客 其中:读取图片并画框请看这篇: opencv 入门笔记八 文件夹读取图片 ...

  4. Kotlin学习笔记 第四章 解构声明 集合集合的扩展方法 Range 异常 Throw关键字

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  5. Kotlin入门(16)容器的遍历方式

    Kotlin号称全面兼容Java,于是乎Java的容器类仍可在Kotlin中正常使用,包括大家熟悉的队列ArrayList.映射HashMap等等.不过Kotlin作为一门全新的语言,肯定还是要有自己 ...

  6. 深度学习入门笔记(十八):卷积神经网络(一)

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  7. Kotlin学习笔记四、集合set-容器list-映射map相关

    一.概述. Kotlin中的容器分三类,分别是集合Set.队列List.映射Map,跟Java的集合set.list.map一一对应.但是kotlin里面的容器又分为只读和可变两种类型.区别在于该容器 ...

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

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

  9. Kotlin 学习笔记(八)—— Kotlin类与对象之接口

    Kotlin 学习笔记(八)-- Kotlin类与对象之接口 Kotlin学习笔记系列教程 Kotlin 学习笔记(一)-- 概述.学习曲线.开发工具.参考资料 Kotlin 学习笔记(二)-- 基础 ...

最新文章

  1. .net core 中的[FromBody]
  2. FPGA(5)数码管静态显示与动态显示
  3. resnet keras 结构_Wandb用起来,一行Python代码实现Keras模型可视化
  4. 11-Memory Management Examples
  5. css如何各种中文字体如雅黑、黑体、宋体、楷体等等
  6. mybatis集成 Invalid bound statement (not found)
  7. Mysql——Innodb和Myisam概念与数据恢复
  8. Xshell安装sql报错:······ RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#3a79bd29)
  9. tc/traffic control 网络控制工具
  10. python类与对象做项目_python 类和对象
  11. VC ado连接数据库
  12. Service Mesh简史
  13. x201 温度过高 反应慢 硬盘搜索时更慢更热 为什么呢?
  14. Android 和iOS 比较
  15. Cocos2d JS 之消灭星星(十) 关卡配置
  16. Java基础002 Java9开发环境搭建(Win10平台)
  17. XUI框架圆角带图片 ButtonView
  18. 计算机不联网会有ip地址吗,不联网的电脑有ip地址吗
  19. MOS电平转换电路 stm32的I2C电平转换电路 IIC电平转换电路
  20. Python将英文标点替换成空格

热门文章

  1. eclipse打开文件的快捷键是什么
  2. 找果网教你苹果手机听筒坏了快速维修的方法
  3. [从头读历史] 第279节 诗经 豳风
  4. PVE服务器端口捆绑
  5. goaccess的安装、使用及介绍【实操完整版】
  6. Kolla Ansible 部署 -T版openstack
  7. wikioi 高精度
  8. office365之imap迁移
  9. 04DeepLab-01论文背景、研究成果及意义
  10. Activiti 流程执行