【Kotlin 入門指南】Map 集合

更新於 發佈於 閱讀時間約 5 分鐘
【Kotlin 入門指南】系列文章目錄:https://bit.ly/3t8awwL
Kotlin 線上課程教學影片:https://bit.ly/3qJ5a5Q

Map 集合

Map 集合,它以 key-value 的方式儲存資料,並確保每個 key 都是獨一無二的。在 Kotlin 中,透過 mapOf 可建立不可變的 Map 集合,這表示一旦初始化資料就無法再做增、刪、改的動作。相對地,使用 MutableMap 則能讓你動態地新增、移除、讀取和修改所有資料。

使用 mapOf 建立不可變 Map 集合

在 Kotlin 中,Map 只能一開始初始資料和事後讀取元素,之後不能進行增、刪、修。

// 建立一個不可變的 Map 集合
val map = mapOf("1" to 666, "2" to 777)
println(map) // 輸出:{1=666, 2=777}

在這個例子中,我們使用 mapOf 函數建立了一個名為 map 的 Map 集合,其中包含了兩組 key-value 對。這裡的 key 分別為 "1""2",而對應的 values 則為 666777

然而,需要注意的是,這樣的 Map 集合在建立後就變成了不可變的,也就是說無法在後續的程式執行中對其進行元素的增加、刪除或修改操作。這是因為我們使用了 val 來宣告這個 Map 集合,使其成為了一個不可變的引用,其內容無法被修改。

若我們嘗試對這樣的不可變 Map 集合進行修改,例如增加一個新的 key-value 對,就會出現編譯錯誤:

// 嘗試修改不可變的 Map 集合,會產生編譯錯誤
map["3"] = 888 // 編譯錯誤:Val cannot be reassigned

在這個範例中,嘗試在不可變的 Map 集合 map 中新增一個 key 為 "3"、value 為 888 的元素,但由於該集合為不可變的,因此編譯器會報錯指出無法重新指派值給不可變變數。

使用 MutableMap 建立可變 Map 集合

若需要事後可以修改,需使用 MutableMap 集合操作新增、移除、讀取、全部刪除資料:

// 建立一個 MutableMap
var mutableMap: MutableMap<String, Int> = mutableMapOf()

// 新增資料
mutableMap["1"] = 666
mutableMap["2"] = 777
mutableMap["3"] = 888

println("新增資料後的集合:$mutableMap")

// 移除資料
mutableMap.remove("1")
println("移除 key 為 \"1\" 後的集合:$mutableMap")

// 獲取資料
val valueForKey2 = mutableMap["2"]
println("key 為 \"2\" 的值:$valueForKey2")

// 刪除所有資料
mutableMap.clear()
println("刪除所有資料後的集合:$mutableMap")

Map 集合常用的方法

- put(key: K, value: V):新增或更新指定鍵的值。如果鍵不存在,則新增一個鍵值對,否則更新現有的鍵值對。
- putAll(from: Map<out K, V>):從另一個 Map 中複製所有的鍵值對到目前的 MutableMap 中。
- remove(key: K):移除指定鍵的鍵值對。
- clear():清空所有的鍵值對。
- containsKey(key: K):檢查指定的鍵是否存在於 MutableMap 中。
- containsValue(value: V):檢查指定的值是否存在於 MutableMap 中。
- getOrDefault(key: K, defaultValue: V):根據指定的鍵查詢對應的值,如果鍵不存在,則返回預設值。
- getOrElse(key: K, defaultValue: (K) -> V):根據指定的鍵查詢對應的值,如果鍵不存在,則通過 defaultValue - 函數生成預設值。
- keys:返回包含所有鍵的集合。
- values:返回包含所有值的集合。
- entries:返回包含所有鍵值對的集合。
- isEmpty():檢查 MutableMap 是否為空。
- size:返回 MutableMap 中鍵值對的數量。
avatar-img
13會員
259內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
HKT實驗室 的其他內容
List 集合特性:按照順序排列,可以放重覆的物件
Kotlin 中的 when 條件控制是一個強大的結構,類似於其他語言中的 switch…case…。它可以根據不同的條件值,執行不同的程式碼塊。
在 Kotlin 中,if 條件控制,讓你能夠根據條件的成立與否來執行不同的程式碼塊。它可以被單獨使用,也可以與 else 搭配使用,為程式添加更多的邏輯控制。
Kotlin 的字串資料類型代表文字的資料型別,使用雙引號括起來。此外,Kotlin 還支援字串模板,讓在字串中插入變數和表達式更加容易。 除此之外,Kotlin 還提供了許多內建的字串函數,像是 substring() 和 replace(),幫助更輕鬆地處理和操作字串。
Kotlin 的 Boolean 資料類型代表布林值,即 true 或 false。通常用於條件語句、邏輯運算和其他需要布林值的地方。
List 集合特性:按照順序排列,可以放重覆的物件
Kotlin 中的 when 條件控制是一個強大的結構,類似於其他語言中的 switch…case…。它可以根據不同的條件值,執行不同的程式碼塊。
在 Kotlin 中,if 條件控制,讓你能夠根據條件的成立與否來執行不同的程式碼塊。它可以被單獨使用,也可以與 else 搭配使用,為程式添加更多的邏輯控制。
Kotlin 的字串資料類型代表文字的資料型別,使用雙引號括起來。此外,Kotlin 還支援字串模板,讓在字串中插入變數和表達式更加容易。 除此之外,Kotlin 還提供了許多內建的字串函數,像是 substring() 和 replace(),幫助更輕鬆地處理和操作字串。
Kotlin 的 Boolean 資料類型代表布林值,即 true 或 false。通常用於條件語句、邏輯運算和其他需要布林值的地方。
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在 Python 中,tuple 與 List有一個關鍵的不同點:tuple 是不可變的,這意味著一旦創建了 tuple,就無法更改其內容。 這與 List的可變性形成了對比,list 可以新增、刪除或修改元素。 元素的意思: 元素:指的是 List 中的每一個獨立的項目或值。
Thumbnail
題目敘述 Kth Distinct String in an Array 給定一個輸入陣列arr 和 參數k 請返回第k個出現恰好一次的陣列元素。
Thumbnail
本章節的目的是介紹 Kotlin 中的物件導向概念。這包括了類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型以及反射等概念。每一個概念都會透過範例程式碼來解釋其功能和用法。
Thumbnail
這章節的目的是介紹 Kotlin 語言中函數的基本用法和概念,包括函數的聲明、使用、參數和返回值等。通過學習這章節,讀者可以熟練掌握如何在 Kotlin 中定義和使用函數,來解決各種問題。
Thumbnail
本章節的目的是介紹 Kotlin 的各種資料型別。包括內建型別如基本數值型別、字串型別和布林型別等,以及如何進行型別轉換。此外,也介紹了如何定義自訂型別(類)和元組型別,以及 Kotlin 提供的集合型別,例如列表(List)、集合(Set)和映射(Map)以及陣列(Array)。
Thumbnail
本文總結和介紹了Kotlin的基本語法、註解和變數的使用,透過實例進行講解,以幫助讀者更好地理解和快速上手Kotlin語言。
Thumbnail
這個章節的目的是為了介紹Kotlin這種程式語言,包含它的特性、應用領域、使用者,以及相關的學習資源和工具。透過這篇文章,讀者可以了解到Kotlin的基礎知識,並開始學習和使用它。
今天要來嘗試的是,如何不用好用的Array.map 方法,來實現 Array.map 的功能。 What is Array.map map() 方法會建立一個新的陣列,其內容為原陣列的每一個元素經由回呼函式運算後所回傳的結果之集合。 簡單來說就是把陣列內的每一個值,個別跑函式,把新的值回傳出成
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在 Python 中,tuple 與 List有一個關鍵的不同點:tuple 是不可變的,這意味著一旦創建了 tuple,就無法更改其內容。 這與 List的可變性形成了對比,list 可以新增、刪除或修改元素。 元素的意思: 元素:指的是 List 中的每一個獨立的項目或值。
Thumbnail
題目敘述 Kth Distinct String in an Array 給定一個輸入陣列arr 和 參數k 請返回第k個出現恰好一次的陣列元素。
Thumbnail
本章節的目的是介紹 Kotlin 中的物件導向概念。這包括了類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型以及反射等概念。每一個概念都會透過範例程式碼來解釋其功能和用法。
Thumbnail
這章節的目的是介紹 Kotlin 語言中函數的基本用法和概念,包括函數的聲明、使用、參數和返回值等。通過學習這章節,讀者可以熟練掌握如何在 Kotlin 中定義和使用函數,來解決各種問題。
Thumbnail
本章節的目的是介紹 Kotlin 的各種資料型別。包括內建型別如基本數值型別、字串型別和布林型別等,以及如何進行型別轉換。此外,也介紹了如何定義自訂型別(類)和元組型別,以及 Kotlin 提供的集合型別,例如列表(List)、集合(Set)和映射(Map)以及陣列(Array)。
Thumbnail
本文總結和介紹了Kotlin的基本語法、註解和變數的使用,透過實例進行講解,以幫助讀者更好地理解和快速上手Kotlin語言。
Thumbnail
這個章節的目的是為了介紹Kotlin這種程式語言,包含它的特性、應用領域、使用者,以及相關的學習資源和工具。透過這篇文章,讀者可以了解到Kotlin的基礎知識,並開始學習和使用它。
今天要來嘗試的是,如何不用好用的Array.map 方法,來實現 Array.map 的功能。 What is Array.map map() 方法會建立一個新的陣列,其內容為原陣列的每一個元素經由回呼函式運算後所回傳的結果之集合。 簡單來說就是把陣列內的每一個值,個別跑函式,把新的值回傳出成