【Flutter 學習筆記】Set 集合資料類型

更新於 發佈於 閱讀時間約 6 分鐘
raw-image
【Flutter 學習筆記】線上課程教學影片:連結
【Flutter 學習筆記】系列文章目錄:連結

在 Dart 程式語言中,Set(集合)是一種無序且不重複的資料結構,主要用於儲存唯一的元素。與 List(串列)不同,Set 不會保留元素的順序,並且不允許重複元素存在。本文將逐步介紹如何宣告 Set 以及常用的 Set 操作方法,幫助讀者更清楚地理解每個部分的功能和用途。

1. 宣告空 Set

要宣告一個空的 Set,我們可以使用以下語法:

var 集合名稱 = <資料型別>{};

實際範例

var mySet = <String>{};

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

2. 宣告 Set 並初始化

除了可以宣告空 Set 外,我們也可以在宣告 Set 的同時進行初始化。透過大括號 {} 包覆一組集合資料,並使用逗號 , 來分隔每一筆資料:

語法說明

var 集合名稱 = {元素1, 元素2, ...};

實際範例

var set1 = {10, 666, 168};
var set2 = {"HKT", "線上教室"};

在這個範例中,我們宣告了兩個 Set:

  • set1 是一個整數型別的 Set,包含三個元素:10、666 和 168。
  • set2 是一個字串型別的 Set,包含兩個元素:"HKT" 和 "線上教室"。

3. 新增資料到 Set

Set 是一種動態大小的資料結構,我們可以隨時新增或刪除元素,無需事先指定大小。要將資料新增到 Set 中,我們可以使用 add() 方法。

實際範例

set1.add(100);
set1.add(66);
set1.add(168); // 168 不會被新增,因為 Set 不允許重複元素
print(set1); // 輸出: {10, 666, 168, 100, 66}

在這段程式碼中,我們將數字 100、66 和 168 新增到 set1 中。值得注意的是,由於 Set 的特性,當我們試圖再次新增已經存在的元素(如:168)時,這個元素將不會被重複新增。

4. 刪除指定的元素

若想要從 Set 中刪除特定的元素,可以使用 remove() 方法。以下示範如何將數字 666 從 set1 中刪除:

實際範例

set1.remove(666);
print(set1); // 輸出: {10, 168, 100, 66}

5. 取得 Set 的大小

我們可以使用 length 屬性來取得 Set 中目前的元素總數。這個屬性能夠輕鬆地了解 Set 的大小。

實際範例

void main() {
var set1 = {10, 666, 168};
print(set1.length); // 輸出: 3
}

6. 清除 Set 所有元素

若想要清空 Set 中的所有元素,可以使用 clear() 方法。這個方法會將 Set 中的所有元素刪除,使其變為空 Set 的狀態。

實際範例

set1.clear();
print(set1); // 輸出: {}

7. Set 的交集、聯集與差集

Set 除了能儲存不重複的元素外,還支援多種集合運算,包括交集、聯集和差集。這些運算在處理資料時非常實用,特別是在需要進行集合比較的情境中。

實際範例

void main() {
var setA = {1, 2, 3};
var setB = {3, 4, 5};

// 聯集
var unionSet = setA.union(setB);
print("聯集: $unionSet"); // 輸出: 聯集: {1, 2, 3, 4, 5}

// 交集
var intersectionSet = setA.intersection(setB);
print("交集: $intersectionSet"); // 輸出: 交集: {3}

// 差集
var differenceSet = setA.difference(setB);
print("差集: $differenceSet"); // 輸出: 差集: {1, 2}
}

在這個範例中,我們展示了三種集合運算:

聯集 (Union)

聯集運算會將兩個集合中的所有元素合併,並自動去除重複的部分。在上述範例中,setAsetB 的聯集結果為 {1, 2, 3, 4, 5}

交集 (Intersection)

交集運算會找出兩個集合中共同的元素。在這個例子中,setAsetB 的交集結果是 {3},因為只有數字 3 同時存在於兩個集合中。

差集 (Difference)

差集運算則是從第一個集合中去除所有在第二個集合中也存在的元素。在範例中,setAsetB 的差集結果為 {1, 2},因為這兩個數字只在 setA 中出現。

結論

這些集合運算不僅能讓我們更方便地處理資料,還能幫助我們在開發過程中進行更複雜的邏輯判斷。透過這些操作,開發者可以更有效率地管理和分析資料集。例如,在處理使用者權限、資料比對或是資料過濾等場景中,這些集合運算都能發揮重要作用。

留言
avatar-img
留言分享你的想法!
avatar-img
HKT實驗室
27會員
272內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
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
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
這篇文章介紹了集合,集合特點包括唯一元素和無順序特性,使其在資料處理中非常實用,例如去重和進行數學集合運算。文章以聖誕節為背景,舉例說明集合如何在計劃聖誕節旅行時幫助篩選重複的旅行地點和比較不同朋友的願望清單。通過使用Python集合,讀者可以更深入了解它們的應用和數學操作,並增強對集合概念的理解。
Thumbnail
這篇文章介紹了集合,集合特點包括唯一元素和無順序特性,使其在資料處理中非常實用,例如去重和進行數學集合運算。文章以聖誕節為背景,舉例說明集合如何在計劃聖誕節旅行時幫助篩選重複的旅行地點和比較不同朋友的願望清單。通過使用Python集合,讀者可以更深入了解它們的應用和數學操作,並增強對集合概念的理解。
Thumbnail
本篇文章介紹 foreach 迴圈,用於走訪集合中的每個元素,特別適合執行相同操作。透過這種迴圈,我們可以輕鬆地對集合中的每個元素進行操作,而無需手動管理索引。這不僅提高了程式碼的可讀性,還能應用於各種集合型別,如 List、Set 和 Map。
Thumbnail
本篇文章介紹 foreach 迴圈,用於走訪集合中的每個元素,特別適合執行相同操作。透過這種迴圈,我們可以輕鬆地對集合中的每個元素進行操作,而無需手動管理索引。這不僅提高了程式碼的可讀性,還能應用於各種集合型別,如 List、Set 和 Map。
Thumbnail
Dart 的 Set(集合)是一種無序且不重複的資料結構,主要用於儲存唯一元素。本文介紹了 Set 的基本操作,包括宣告空 Set、初始化 Set、新增和刪除元素、取得大小、清空 Set,以及集合運算(聯集、交集和差集)。
Thumbnail
Dart 的 Set(集合)是一種無序且不重複的資料結構,主要用於儲存唯一元素。本文介紹了 Set 的基本操作,包括宣告空 Set、初始化 Set、新增和刪除元素、取得大小、清空 Set,以及集合運算(聯集、交集和差集)。
Thumbnail
本文中,我們深入探討了 Dart 中的 Map(映射)資料結構,學習了如何宣告、初始化、更新、刪除以及走訪 Map 中的鍵值對。Map 是一個非常靈活且強大的資料結構,適合用於各種需要快速查詢的場景。
Thumbnail
本文中,我們深入探討了 Dart 中的 Map(映射)資料結構,學習了如何宣告、初始化、更新、刪除以及走訪 Map 中的鍵值對。Map 是一個非常靈活且強大的資料結構,適合用於各種需要快速查詢的場景。
Thumbnail
在本文中,我們深入探討了 Dart 中的 List(串列)資料結構,從宣告、初始化、資料操作到清空串列,逐步介紹了各種常用的方法。透過這些操作,開發者可以靈活地管理和操作資料集合,提升程式的可讀性和維護性。
Thumbnail
在本文中,我們深入探討了 Dart 中的 List(串列)資料結構,從宣告、初始化、資料操作到清空串列,逐步介紹了各種常用的方法。透過這些操作,開發者可以靈活地管理和操作資料集合,提升程式的可讀性和維護性。
Thumbnail
本篇文章探討了Python中的字串、列表、元組、集合與字典這五種資料類型的定義與基本操作。這些資料類型各具特點,例如字串和元組是不可變的,列表和集合是可變的,適合不同的使用場景。文章中詳細介紹如何定義進行基本的操作(如添加、刪除、訪問元素等)。
Thumbnail
本篇文章探討了Python中的字串、列表、元組、集合與字典這五種資料類型的定義與基本操作。這些資料類型各具特點,例如字串和元組是不可變的,列表和集合是可變的,適合不同的使用場景。文章中詳細介紹如何定義進行基本的操作(如添加、刪除、訪問元素等)。
Thumbnail
本文探討 Dart 變數命名規則,包括避免與關鍵字重複、字首不能為數字、可底線開頭表示私有、大小寫敏感且用小駝峰式命名、適當利用資料型別推斷及遵循團隊規範。遵循這些規則可提升程式碼可讀性和維護性,助開發者得心應手,提高程式碼品質。
Thumbnail
本文探討 Dart 變數命名規則,包括避免與關鍵字重複、字首不能為數字、可底線開頭表示私有、大小寫敏感且用小駝峰式命名、適當利用資料型別推斷及遵循團隊規範。遵循這些規則可提升程式碼可讀性和維護性,助開發者得心應手,提高程式碼品質。
Thumbnail
變數是程式設計基本元素,可儲存不同資料類型,提高程式碼可讀性且值可動態改變。文中介紹三種宣告方式,並以重新設定變數範例說明變數特性,包括同型別可重新賦值、不同型別會編譯錯誤及不可重複宣告。鼓勵大家多實踐以提升程式設計能力。
Thumbnail
變數是程式設計基本元素,可儲存不同資料類型,提高程式碼可讀性且值可動態改變。文中介紹三種宣告方式,並以重新設定變數範例說明變數特性,包括同型別可重新賦值、不同型別會編譯錯誤及不可重複宣告。鼓勵大家多實踐以提升程式設計能力。
Thumbnail
Set 集合特性:沒有特定順序,且沒有重覆的物件
Thumbnail
Set 集合特性:沒有特定順序,且沒有重覆的物件
Thumbnail
使用了很多軟體,其實最可怕的就是變成囤積魔人。蒐藏了很多,但是真正要用使不上力。該如何是好? 把知識分類、拆碎。比較能夠看到原子化的單一子概念,有點像淘金客淘金的感覺。 具
Thumbnail
使用了很多軟體,其實最可怕的就是變成囤積魔人。蒐藏了很多,但是真正要用使不上力。該如何是好? 把知識分類、拆碎。比較能夠看到原子化的單一子概念,有點像淘金客淘金的感覺。 具
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News