「那要怎麼實作 LinkedList 呢?」我忍不住焦急的問。說不定下一個挑戰就是這題,先來偷師一下。
學長笑了笑,搖搖頭說:「不用那麼緊張啊。其實在實務開發裡,很少需要自己動手去實作 LinkedList。因為這種基礎的資料結構,標準函式庫早就幫我們準備好了,直接拿來用就行。」
他邊說邊打開編輯器,寫下一段小範例給我看。
fun main() {
val linkedList = java.util.LinkedList<String>()
linkedList.add("A")
linkedList.add("B")
linkedList.add("C")
linkedList.add("D")
println("初始: $linkedList")
// 移除索引 1 的元素(也就是 "B")
linkedList.removeAt(1)
println("移除索引 1 後: $linkedList")
// 移除索引 0 的元素(也就是 "A")
linkedList.removeAt(0)
println("移除索引 0 後: $linkedList")
}
「咦?這看起來像是 Java 的程式碼耶?」我忍不住問。 Java 很有名,聽說很多系統都是用它開發的,只是我也聽說,因為版本繁多,很多老系統乾脆一直卡在 Java 8,不敢升級。
學長點點頭:「沒錯,因為 Kotlin 本身沒有特地提供 LinkedList,不過它完全相容 Java,所以可以直接呼叫 Java 的 LinkedList 類別來用。」
「那這個 println 是做什麼的?」我指著程式碼問。
「println 只是把內容印出來,方便檢查結果是不是跟想像的一樣。」學長聳了聳肩,「畢竟直接觀察記憶體的變化可麻煩多了。」說著,他按下了執行鍵,螢幕上瞬間跳出結果。
初始: [A, B, C, D]
移除索引 1 後: [A, C, D]
移除索引 0 後: [C, D]
「嗯,跟我預期的一樣。」學長露出滿意的微笑。