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入门笔记(八)集合 与 遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FTP 通过cmd命令上传下载文件
- 下一篇: 【电源专题】开关稳压器vs线性稳压器