【Flutter 學習筆記】Map(映射)集合資料類型

更新 發佈閱讀 6 分鐘
vocus|新世代的創作平台
【Flutter 學習筆記】線上課程教學影片:連結
【Flutter 學習筆記】系列文章目錄:連結

在 Dart 程式語言中,Map(映射)是一種非常重要的資料結構,用於儲存鍵值對(key-value pairs)。每個鍵(key)都是唯一的,並且可以用來快速查詢對應的值(value)。這使得 Map 特別適合用於需要快速查詢的場景,例如儲存使用者資料、設定參數等。本文將逐步介紹如何宣告 Map 以及常用的操作方法,幫助讀者更深入地理解這個資料結構。

1. 宣告空 Map

在 Dart 中,宣告一個空的 Map 可以使用以下語法:

// 語法說明
var 映射名稱 = <鍵型別, 值型別>{};

// 實際範例
var myMap = <String, int>{};

在這個範例中,我們使用大括號 {} 來表示一個空的 Map。myMap 被初始化為一個空的 Map,這意味著它可以儲存多個字串型別的鍵和整數型別的值,但目前尚未包含任何鍵值對。

2. 宣告 Map 並初始化

除了可以宣告空 Map 外,我們也可以在宣告的同時進行初始化,透過大括號 {} 包覆一組鍵值對,並使用逗號 , 來分隔每一對鍵值:

// 語法說明
var 映射名稱 = {1:1,2:2, ...};

// 實際範例
var userMap = {
"name": "HKT線上教室",
"age": 18,
"city": "臺北市"
};

在這個範例中,我們宣告了一個 userMap,它包含三組鍵值對:name 對應 HKT線上教室,age 對應 18,以及 city 對應 臺北市。

3. 新增資料至 Map

若要向 Map 中新增資料,我們可以透過指定新的鍵來添加對應的值。以下是一個簡單的範例,展示如何將資料新增至 Map 中:

// 使用鍵來新增資料
userMap["email"] = "[email protected]";
print(userMap);
// 輸出: {name: HKT線上教室, age: 18, city: 台北市, email: [email protected]}

在此範例中,我們使用鍵 email 來新增一個值 [email protected] 到 userMap 中。最後,透過 print 函式輸出整個 Map 的內容,讓我們可以清楚看到新增的資料。

4. 更新 Map 中的值

若要更新 Map 中某個鍵對應的值,可以直接使用該鍵來指派新的值:

// 更新 age 的值
userMap["age"] = 25;
print(userMap);
// 輸出: {name: HKT線上教室, age: 25, city: 台北市, email: [email protected]}

在這個範例中,我們將 age 的值從 18 更新為 25。

5. 取得 Map 中的值

若要取得 Map 中某個鍵對應的值,我們可以透過鍵來存取 Map 中的特定值:

// 取得資料
print(userMap["name"]); // 輸出: HKT線上教室
print(userMap["city"]); // 輸出: 台北市

在這個範例中,我們使用鍵 name 和 city 來取得對應的值。

6. 取得 Map 的長度

我們可以使用 length 屬性來取得 Map 中目前的鍵值對總數:

// 取得 userMap 長度
print(userMap.length); // 輸出: 4

7. 刪除指定的鍵值對

若想要從 Map 中刪除特定的鍵值對,可以使用 remove 方法:

// 刪除 email 鍵值對
userMap.remove("email");
print(userMap); // 輸出: {name: HKT線上教室, age: 25, city: 台北市}

在這個範例中,我們使用 remove 方法來刪除 userMap 中的 email 鍵值對。刪除後,透過 print 函式輸出 Map 的內容,確認 email 鍵值對已被成功移除。

8. 走訪 Map

我們可以使用 forEach 方法來走訪 Map 中的所有鍵值對,這樣可以方便地查看 Map 的內容:

// 走訪 userMap
userMap.forEach((key, value) {
print("$key: $value");
});

這段程式碼會輸出 Map 中所有的鍵值對,讓我們能夠輕鬆地查看 Map 的內容。輸出結果如下:

name: HKT線上教室
age: 25
city: 台北市

9. 清空 Map 所有鍵值對

若想要清空 Map 中的所有鍵值對,可以使用 clear 方法:

// 清空 userMap 所有鍵值對
userMap.clear();
print(userMap); // 輸出: {}

在這個範例中,我們使用 clear 方法來清空 userMap 中的所有鍵值對。清空後,透過 print 函式輸出 Map 的內容,確認所有鍵值對已被成功移除。

總結

在本文中,我們深入探討了 Dart 中的 Map(映射)資料結構,學習了如何宣告、初始化、更新、刪除以及走訪 Map 中的鍵值對。Map 是一個非常靈活且強大的資料結構,適合用於各種需要快速查詢的場景。

留言
avatar-img
HKT實驗室
32會員
287內容數
哈囉!我是 HKT,一位專注於 AI 領域、熱愛 Vibe Coding 技術的開發者。在這個專屬的部落格空間,我將與你分享我在 AI 應用開發領域中的深入學習心得與實戰經驗。如果你也對 AI 技術充滿好奇,渴望不斷探索 AI 的無限可能,歡迎加入會員,與我一起踏上 AI 之旅,挖掘更深層的技術世界,享受學習的樂趣!
HKT實驗室的其他內容
2024/11/18
在 Dart 程式語言中,除了位置參數和預設參數值外,具名參數的使用讓函式的呼叫變得更加清晰且易於理解。特別是在參數較多的情況下,具名參數的優勢尤為明顯。本篇文章將深入探討如何定義和使用具名參數,並透過實際範例來加深讀者的理解。
Thumbnail
2024/11/18
在 Dart 程式語言中,除了位置參數和預設參數值外,具名參數的使用讓函式的呼叫變得更加清晰且易於理解。特別是在參數較多的情況下,具名參數的優勢尤為明顯。本篇文章將深入探討如何定義和使用具名參數,並透過實際範例來加深讀者的理解。
Thumbnail
2024/11/17
在 Dart 程式語言中,函式不僅可以接收參數,還能為這些參數設定預設值。這樣的設計使得函式的呼叫更加靈活,並且簡化了程式碼的撰寫。本文將深入探討如何定義具有預設參數值的函式,並透過實際範例來加深理解。
Thumbnail
2024/11/17
在 Dart 程式語言中,函式不僅可以接收參數,還能為這些參數設定預設值。這樣的設計使得函式的呼叫更加靈活,並且簡化了程式碼的撰寫。本文將深入探討如何定義具有預設參數值的函式,並透過實際範例來加深理解。
Thumbnail
2024/11/16
在 Dart 程式語言中,函式不僅能執行特定任務,還能回傳值,這使得函式在程式中更具彈性和重用性。本篇文章將深入探討如何定義一個具有回傳值的函式,並透過實際範例來幫助大家理解其結構與用途。
Thumbnail
2024/11/16
在 Dart 程式語言中,函式不僅能執行特定任務,還能回傳值,這使得函式在程式中更具彈性和重用性。本篇文章將深入探討如何定義一個具有回傳值的函式,並透過實際範例來幫助大家理解其結構與用途。
Thumbnail
看更多
你可能也想看
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
👨‍💻簡介 在 Go 語言中,有著一個強大又便捷的工具,可以讓你以鍵-值(Key-Value)的形式儲存和查詢資料,它就是「Map」。Map 在 Go 語言中扮演了重要的角色,簡化了許多資料處理的任務,現在讓我們一起來深入了解這個有趣的資料型別。 Map的基本概念 Map 是 Go 語
Thumbnail
👨‍💻簡介 在 Go 語言中,有著一個強大又便捷的工具,可以讓你以鍵-值(Key-Value)的形式儲存和查詢資料,它就是「Map」。Map 在 Go 語言中扮演了重要的角色,簡化了許多資料處理的任務,現在讓我們一起來深入了解這個有趣的資料型別。 Map的基本概念 Map 是 Go 語
Thumbnail
此章節旨在介紹Java程式語言中的各種資料型別,包括基本型別、引用型別、集合型別、陣列型別、字典型別等。它還講解了如何在Java中進行型別轉換和自定義型別,並提供了相關的程式碼示例。
Thumbnail
此章節旨在介紹Java程式語言中的各種資料型別,包括基本型別、引用型別、集合型別、陣列型別、字典型別等。它還講解了如何在Java中進行型別轉換和自定義型別,並提供了相關的程式碼示例。
Thumbnail
let 區域函數是 Kotlin 中一個非常實用的工具,特別適用於處理可空對象。它讓程式碼更加簡潔、安全,同時提高了可讀性。透過 let 區域函數,我們可以更優雅地處理可空性問題,使得程式開發更加高效順暢。
Thumbnail
let 區域函數是 Kotlin 中一個非常實用的工具,特別適用於處理可空對象。它讓程式碼更加簡潔、安全,同時提高了可讀性。透過 let 區域函數,我們可以更優雅地處理可空性問題,使得程式開發更加高效順暢。
Thumbnail
存取可為空的變數,方式四: 使用「!!」堅持資料不為空運算符號(不建議使用)。 不建議大家使用「!!」,此方式不管資料有沒有值都會去存取資料值。
Thumbnail
存取可為空的變數,方式四: 使用「!!」堅持資料不為空運算符號(不建議使用)。 不建議大家使用「!!」,此方式不管資料有沒有值都會去存取資料值。
Thumbnail
在 kotlin 程式語言中,定義資料類型,最後加上問號「?」,則表示此筆資料可為空,可以指定 null 值。
Thumbnail
在 kotlin 程式語言中,定義資料類型,最後加上問號「?」,則表示此筆資料可為空,可以指定 null 值。
Thumbnail
Dictionary(字典) : 是一個可以用來存放不同資料(不同型態)的容器(集合) 每一個元素都是以{鍵(Key):值(Value)}所構成,字典中每個項目都是用","隔開
Thumbnail
Dictionary(字典) : 是一個可以用來存放不同資料(不同型態)的容器(集合) 每一個元素都是以{鍵(Key):值(Value)}所構成,字典中每個項目都是用","隔開
Thumbnail
在 Kotlin 程式語言中,資料類別 (Data classes) ,它讓你能夠輕鬆地建立和定義只用來儲存資料的類別,讓程式碼更簡潔、更容易閱讀。資料類別的主要目的是暫時保存資料,而不是處理邏輯行為。
Thumbnail
在 Kotlin 程式語言中,資料類別 (Data classes) ,它讓你能夠輕鬆地建立和定義只用來儲存資料的類別,讓程式碼更簡潔、更容易閱讀。資料類別的主要目的是暫時保存資料,而不是處理邏輯行為。
Thumbnail
首先需要在pubspec.yaml文件中添加依賴。 宣告 SharedPreferences record = await SharedPreferences.getInstance(); 寫入 //字串資料 await record.setString(key, value); //
Thumbnail
首先需要在pubspec.yaml文件中添加依賴。 宣告 SharedPreferences record = await SharedPreferences.getInstance(); 寫入 //字串資料 await record.setString(key, value); //
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News