iT邦幫忙

2023 iThome 鐵人賽

DAY 2
1
Kotlin

Kotlin is all you need系列 第 2

[Day 2] 環境設定 / Array / Linked List

  • 分享至 

  • xImage
  •  

第 2 天開始了!!!

環境設定

本身作業系統是用 Ubuntu 22.04.3 LTS

所以環境設定僅供參考

其他作業系統可以參考這篇

建立可用指令編譯與執行 Kotlin 程式碼的環境


這次實做是透過 vsCode 作為編輯器開發,再用 terminal 運行

首先,extension package 先下載 3 個

  • Kotlin Lanuage
  • Kotlin
  • Code Runner

並在使用者設定中的檔案 settings.json 加入

"code-runner.runInTerminal": true,

在透過安裝 Kotlin 指令

sudo apt install kotlin

這樣就完成了!!!


來運行一下 Hello World 吧 ~~~

// Hello World Program

fun main(args : Array<String>) {
    println("Hello, World!")
}

https://ithelp.ithome.com.tw/upload/images/20230911/20152821w5qHvEblnQ.png

這時候我就疑問了 jar 這檔案是什麼 ?

Kotlin 通常與 Java 一起使用,可以在 Java 虛擬機 (JVM) 上運行。當我們編寫 Kotlin 程式碼時,它會被編譯成 Java bytecode,然後打包成一個 JAR 文件(Java Archive)。

JAR 是一種包含 Java bytecode 和其他資源文件的壓縮文件,可以在不同 Java 環境中共享和使用。

如此一來,Kotlin 便可以在 Java 虛擬機上運行和共享。

了解其他 Kotlin 基礎可以參考此連結

Array

Define array

val numbers: IntArray = intArrayOf(1, 2, 3, 4, 5)

這裡我們宣告一個 array,它儲存 integer,裡頭包含 1 到 5

Array 也可以儲存其它型態資料

Access array

val firstNumber = numbers[0]

以上我們存取 numbers 這個陣列第一個元素,也就是 1

Some function with array

// size of an array
println("Size of array: ${numbers.size}")
// is empty
println("Is empty: ${numbers.isEmpty()}")
// contains
println("Contains 3: ${numbers.contains(3)}")

我們可以透過 numbers.size 來知道 numbers 陣列中的元素個數

isEmpty() 則是判斷這陣列是否為空

contains() 這比較特別,它可以判斷陣列中是否有我們所設定要被找尋的元素

With loop

// create an array using factory functions
val numbers2 = IntArray(5)
for (i in numbers2.indices) {
    numbers2[i] = i + 1
}
for (i in numbers2.indices) {
    println(numbers2[i])
}

這裡跟上述使用 array 的方式不太一樣,我們先宣告一個有 5 個元素的陣列

並透過第一個迴圈給予每個元素的值,如果沒有執行這項動作,初始的值是 0

可以注意一下 indices,這是 Kotlin 透過索引得到該陣列的方法

在第二個迴圈,我們以一列一個元素輸出

1
2
3
4
5

Linked List

Kotlin 中,你可以通過建立自定義的鏈結串列類來實現鏈結串列資料結構,也可以使用 Kotlin 標準庫中的 LinkedList

import java.util.LinkedList

fun main() {
    val linkedList = LinkedList<String>()

    linkedList.add("Apple")
    linkedList.add("Banana")
    linkedList.add("Cherry")

    for (item in linkedList) {
        println(item)
    }

    // remove
    linkedList.remove("Banana")
    println("After removing Banana:")
    for (item in linkedList) {
        println(item)
    }

    // addFirst
    linkedList.addFirst("Banana")
    println("After adding Banana to the first:")
    for (item in linkedList) {
        println(item)
    }

    // addLast
    linkedList.addLast("Watermelon")
    println("After adding Banana to the last:")
    for (item in linkedList) {
        println(item)
    }
}

以上是一些 Linked List 基本操作

  • add: 新增元素
  • remove: 移除元素
  • addFirst: 在 Linked List 的第一個索引位置新增元素
  • addLast: 在 Linked List 的最後的索引位置新增元素

輸出值

Apple
Banana
Cherry
After removing Banana:
Apple
Cherry
After adding Banana to the first:
Banana
Apple
Cherry
After adding Banana to the last:
Banana
Apple
Cherry
Watermelon

所有 Code 可以在 Github 找到 ~

明天見~~~

/images/emoticon/emoticon06.gif


上一篇
[Day 1] Why Kotlin ?
下一篇
[Day 3] Stack / Queue
系列文
Kotlin is all you need31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言