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

閱讀時間約 6 分鐘
raw-image
【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"] = "thishkt@gmail.com";
print(userMap);
// 輸出: {name: HKT線上教室, age: 18, city: 台北市, email: thishkt@gmail.com}

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

4. 更新 Map 中的值

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

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

在這個範例中,我們將 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
10會員
233內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
HKT實驗室 的其他內容
在本文中,我們深入探討了 Dart 中的 List(串列)資料結構,從宣告、初始化、資料操作到清空串列,逐步介紹了各種常用的方法。透過這些操作,開發者可以靈活地管理和操作資料集合,提升程式的可讀性和維護性。
本篇文章介紹 switch-case 多重條件判斷工具,適合處理多個可能的值。透過 switch 敘述,開發者可以根據表達式的值執行對應的 case 區塊,並使用 default 區塊來處理未列舉的情況。
本文將深入探討巢狀 if 條件式,並透過範例詳細說明其實作原理。這種結構能夠提供靈活且豐富的條件判斷,但在使用時需注意避免過度嵌套,以確保程式碼的可讀性和可維護性。
在 Dart 程式語言中,if 多條件判斷結構允許處理複雜邏輯,根據第一個成立的條件執行相應程式碼。語法包括多個條件的檢查,並可用於實際範例,如根據考試分數判斷成績等級。此結構在成績評定、折扣計算等應用中非常常見。
這篇文章介紹了 Dart 程式語言中的 if-else 條件控制結構。透過 if 語句,我們可以根據條件的真假來執行不同的程式碼。文章提供了一個年齡判斷的範例,當年齡大於或等於 18 時,輸出允許進入酒吧的訊息;否則,則輸出禁止進入的訊息。
文章介紹了 Dart 程式語言中的 if 條件敘述,解釋其基本語法及運作方式,並透過範例展示如何根據條件執行程式碼。
在本文中,我們深入探討了 Dart 中的 List(串列)資料結構,從宣告、初始化、資料操作到清空串列,逐步介紹了各種常用的方法。透過這些操作,開發者可以靈活地管理和操作資料集合,提升程式的可讀性和維護性。
本篇文章介紹 switch-case 多重條件判斷工具,適合處理多個可能的值。透過 switch 敘述,開發者可以根據表達式的值執行對應的 case 區塊,並使用 default 區塊來處理未列舉的情況。
本文將深入探討巢狀 if 條件式,並透過範例詳細說明其實作原理。這種結構能夠提供靈活且豐富的條件判斷,但在使用時需注意避免過度嵌套,以確保程式碼的可讀性和可維護性。
在 Dart 程式語言中,if 多條件判斷結構允許處理複雜邏輯,根據第一個成立的條件執行相應程式碼。語法包括多個條件的檢查,並可用於實際範例,如根據考試分數判斷成績等級。此結構在成績評定、折扣計算等應用中非常常見。
這篇文章介紹了 Dart 程式語言中的 if-else 條件控制結構。透過 if 語句,我們可以根據條件的真假來執行不同的程式碼。文章提供了一個年齡判斷的範例,當年齡大於或等於 18 時,輸出允許進入酒吧的訊息;否則,則輸出禁止進入的訊息。
文章介紹了 Dart 程式語言中的 if 條件敘述,解釋其基本語法及運作方式,並透過範例展示如何根據條件執行程式碼。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
JSDoc 全名是 JavaScript Documentation,顧名思義是為 JavaScript 所使用的 API 文件,在程式碼內透過註解的方式撰寫,運行後 JSDoc 會自動掃描註解內容,並生成一份網頁版的文件,對於沒有使用 Typescript 開發的專案,也
Thumbnail
一般在使用 TypeScript 的時候,大家都有遇過定義列舉資料的情境吧。 不過不管是 enum 和 literal 的方式其實都有些小缺點,以下推薦一個個人認為體驗更好的方式。
Thumbnail
此章節旨在介紹Java程式語言中的各種資料型別,包括基本型別、引用型別、集合型別、陣列型別、字典型別等。它還講解了如何在Java中進行型別轉換和自定義型別,並提供了相關的程式碼示例。
Thumbnail
此章節旨在介紹Java的基本語法、註解和變數的使用。透過學習,讀者將了解Java程式的基本結構、程式進入點的定義、如何撰寫單行和多行註解,以及如何宣告和初始化變數。
Thumbnail
這篇文章的目的是對Java程式設計語言進行介紹,包括它的特性、應用範疇、主要使用者,以及相關的學習資源和常見的庫與框架。此外,它也提供了一些學習Java的渠道,以及與Java相關的其他知識。
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Thumbnail
本章節旨在介紹 TypeScript 的基本資料型別,包括內建型別、型別轉換、自訂型別、元組、集合、陣列、和字典型別。透過理解和使用這些型別,可以提高代碼的可讀性和可維護性。
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
本課程學習如何添加 Room 資料庫相關依賴庫配置。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
JSDoc 全名是 JavaScript Documentation,顧名思義是為 JavaScript 所使用的 API 文件,在程式碼內透過註解的方式撰寫,運行後 JSDoc 會自動掃描註解內容,並生成一份網頁版的文件,對於沒有使用 Typescript 開發的專案,也
Thumbnail
一般在使用 TypeScript 的時候,大家都有遇過定義列舉資料的情境吧。 不過不管是 enum 和 literal 的方式其實都有些小缺點,以下推薦一個個人認為體驗更好的方式。
Thumbnail
此章節旨在介紹Java程式語言中的各種資料型別,包括基本型別、引用型別、集合型別、陣列型別、字典型別等。它還講解了如何在Java中進行型別轉換和自定義型別,並提供了相關的程式碼示例。
Thumbnail
此章節旨在介紹Java的基本語法、註解和變數的使用。透過學習,讀者將了解Java程式的基本結構、程式進入點的定義、如何撰寫單行和多行註解,以及如何宣告和初始化變數。
Thumbnail
這篇文章的目的是對Java程式設計語言進行介紹,包括它的特性、應用範疇、主要使用者,以及相關的學習資源和常見的庫與框架。此外,它也提供了一些學習Java的渠道,以及與Java相關的其他知識。
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Thumbnail
本章節旨在介紹 TypeScript 的基本資料型別,包括內建型別、型別轉換、自訂型別、元組、集合、陣列、和字典型別。透過理解和使用這些型別,可以提高代碼的可讀性和可維護性。
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
本課程學習如何添加 Room 資料庫相關依賴庫配置。