【Kotlin 入門指南】List 集合

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

List 集合

List 集合是一種常見且實用的資料結構,它能夠以特定順序排列物件,並且允許儲存重複的元素。在 Kotlin 中,有兩種主要的 List 集合類型:不可變的 List可變的 MutableList

不可變的 List 集合範例

列表(List)是一種常見的資料結構,它可以儲存多個元素。若要讀取列表中特定索引值的資料,可以使用中括號 [] 來存取。索引值表示列表中每個元素的位置,從0開始計數。

舉例來說,假設有一個名為 lists 的列表,裡面包含了數字 666777888

//宣告一個 List 集合,並初始化資料,kotlin 會根據資料,自動推斷,資料型別
var lists = listOf(666,777,888)

要讀取索引值為1的資料,可以使用 lists[1] 的語法,其中 1 代表所需資料的索引值。在 Kotlin 中,索引值從0開始計算,因此 lists[1] 會取得列表中索引值為1的元素,也就是第二個元素。

接下來,可以使用 println() 函數來輸出這個資料:

// 讀取索引值為1的資料
println(lists[1])

在這個範例中,程式碼會輸出列表 lists 中索引值為1的資料,對應到這個例子就是 777

注意,不可變的 List 集合在初始化後無法進行增加、刪除或修改元素的操作。

可變的 MutableList 範例

若需要在後續修改集合的內容,則需使用 MutableList 類型的集合。

//宣告一個 MutableList 資料型態為整數的集合變數
var mutableList: MutableList<Int> = mutableListOf()

//新增資料
mutableList.add(666)
mutableList.add(777)
mutableList.add(888)
println(mutableList)// 印出整個 MutableList

//獲取索引第二筆資料
mutableList[2]
println(mutableList[2]) //Kotlin 索引從 0 開始,所以會取出 888

//移除資料為 666 的資料(需要注意的是這裏跟 Java 不同,此處移除不是根據索引筆數)
mutableList.remove(666)
println(mutableList)

//根據索引筆數刪除方式
mutableList.remove(mutableList[1])
println(mutableList) // 根據索引筆數刪除資料後,印出剩餘的 MutableList

//刪除全部 mutableList 內的資料
mutableList.clear()
println(mutableList) // 清空 MutableList 後,印出空的 MutableList

使用 MutableList 集合可以輕鬆地進行新增、移除和修改元素的操作。

List 集合常用的方法

Kotlin 的 List 集合提供了多種實用的方法,以下是一些常用的操作:

- add(element: E):將指定的元素添加到列表的末尾。
- add(index: Int, element: E):將指定的元素插入到列表的指定位置。
- remove(element: E):從列表中刪除指定的元素。
- removeAt(index: Int):從列表中刪除指定位置的元素。
- set(index: Int, element: E):用指定的元素替換列表中指定位置的元素。
- clear():從列表中刪除所有元素。
- size:返回列表中元素的數量。
- isEmpty:檢查列表是否為空。
- contains(element: E):檢查列表是否包含指定的元素。
- indexOf(element: E):返回列表中第一個出現指定元素的位置。
- subList(fromIndex: Int, toIndex: Int):返回一個包含列表中指定範圍內元素的子列表。

這些函數可以協助你在處理 List 集合時進行元素的增、刪、查、改等操作,輕鬆處理資料集合。

List 集合在 Kotlin 中是相當重要且方便的資料結構之一,能夠幫助你有效地管理和操作資料集合。

3會員
176內容數
本指南將以清晰易懂的方式介紹基礎概念,讓你能夠快速上手,輕鬆踏上學習 Kotlin 的旅程 透過簡單易懂的方式,讓你將能夠在短時間內建立起對 Kotlin 的基本了解,並開始實際應用於你的專案之中。不論你是想要進入 Android 開發領域或者只是想探索新的程式語言,這份指南都會成為你學習 Kotlin 的理想起點。
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
創作者要怎麼好好休息 + 避免工作過量?《黑貓創作報#4》午安,最近累不累? 這篇不是虛假的關心。而是《黑貓創作報》發行以來可能最重要的一篇。 是的,我們這篇講怎麼補充能量,也就是怎麼休息。
Thumbnail
avatar
黑貓老師
2024-06-29
學習 Kotlin 系列:一生綁定 val v.s 自由任命 var行程 (Process),正如其名,指的是正在執行的程式 (Program),變數在其之中,是獲得命名,能保留自我的少數特殊存在。如果變數屬於全域變數 (Global Value),那麼其生命週期就會和行程一致,其他較短生命週期的都是局部變數 (Local Value)。 從一而終,在生命中止前不變
Thumbnail
avatar
Kate
2020-07-20
學習 Kotlin 系列:變數資料型別 正數相加可為負接續上次的士兵類別,提到名字用了 String 變數。 String 是字串的意思,在 Kotlin 裡,常見變數可以分成幾個基本資料型別:數字(Number)、字串(String)、布林(Boolean)。 差別在於行為模式不同,以加法為例,數字執行數學課上的四則運算的加法,字串卻做了連接,布林則
Thumbnail
avatar
Kate
2020-06-02
學習 Kotlin 系列:類型、物件、變數 出來吧,我的士兵作為指揮官,如果只有一個部下也太令人傷心了。 為能夠有效率的取得大量的士兵,使用類型(Type)來廉價批發。 建立一個檔案「士兵.kt」,這次選 class,讓 IDE 幫我們初始化類別的程式碼 。 建立一個檔案「士兵.kt」,選 class 。  IDE 預設將 class 取名和檔案一樣。 初級
Thumbnail
avatar
Kate
2020-05-22
學習 Kotlin 系列:函數、參數 yes, my master程式是個單純的小伙子,他會按照程式碼的內容執行動作,所以我們可以把函數當作給他的指令「單位」,不是最小單位,就只是單位。 以下是令人熱血沸騰的情境: 「射擊準備!發射角度東偏南33度,目標距離200公尺,風向正西速度每小時100公里,氣溫38度,濕度百分之20。」 「yes, my master.」
avatar
Kate
2020-05-17
學習 Kotlin 系列:建立檔案現在,開始建立第一個檔案吧,一樣用最簡單的 Hello World 示範。 在 kotlin 資料夾按右鍵選擇 New 裡的 Kotlin File/Class 。 雖然有許多格式可以選,但其實只是 IDE 提供初始程式碼的差別,完全可以中途更改,我們這次選最基本的 File 格式就好。 命名檔案和
Thumbnail
avatar
Kate
2020-05-14
學習 Kotlin 系列:Hello World會撰寫 Hello World 程式,證明我們已經推開程式語言的大門,成為會寫這門語言的開發者,所以,現在就先來寫 Hello World 吧。 目標:印出 Hello World 這串文字。
Thumbnail
avatar
Kate
2020-05-09
學習 Kotlin 系列:建立專案所謂專案,就是項目,或者說是主題。 比如說我今天打算寫個猜數字遊戲,於是就建立一個名為「猜數字」的專案。 如果要和外國人合作開發,專案名稱取英文會比較好,雖然不是每個外國人英文都很好,但是工程師要有基本的英文閱讀能力,科技界很多第一手消息都是英文,我們用的開發介面 Intellij IDEA
Thumbnail
avatar
Kate
2020-05-07
學習 Kotlin 系列:物件導向語言也許有人聽過, Kotlin 是物件導向語言。 既然都特別提了,肯定還有其他種語言,那就是程序導向語言。 最大的差別就是因為物件導向語言有了物件的概念,所以有了三大能力:繼承(Inheritance)、封裝(Encapsulation)和多型(Polymorphism)。
avatar
Kate
2020-05-06
學習 Kotlin 系列:安裝 IDE到官方網站 https://www.jetbrains.com/idea/ 下載名為 IntelliJ IDEA 的 IDE (整合開發環境:意味著撰寫、編譯、連結、除錯、執行等步驟全都包)。 因為安裝只要按照預設選項不停地點下一步,所以就不另做說明了,如果讀者有遇到安裝問題,可以留言提問。
avatar
Kate
2020-05-05
Kotlin Heroes contest 練習這幾天參加了 Kotlin Hero 程式競賽前的練習,有個特別的體驗。 看題目一邊理解題意時,一邊就會在心理想像出程式流程的設計長得怎麼樣,比如輸入數值的型態為何?需不需要字串拆解?用什麼迴圈或遞迴編碼結構?一邊實作出來。或是歸納題意後,用數學運算公式整理簡化,比如真值表簡化換算,或是套用等差級數
Thumbnail
avatar
吳欣展
2020-02-26