資料結構筆記 :陣列 vs 串列

更新 發佈閱讀 4 分鐘

相信很多初學者對於陣列和串列常常會搞不清楚, 在寫程式的時候常常不知道該使用哪一個, 這篇文章可以讓你快速了解其中的差別

什麼是陣列 (Array)

固定大小的置物櫃排

陣列就像是一個固定大小的置物櫃排, 其有以下幾項的特性

  1. 固定大小 : 一開始建立陣列時就比需要決定他能存多少資料, 之後是無法改變。
  2. 每格資料型態相同:例如全部都是整數, 或者其他全部都是字串。
  3. 透過編號 (Index) 快速存取 : 例如 array[0], array[1], 速度很快。


vocus|新世代的創作平台


Java 為例

int[] numbers = new int[5] // 建立一個長度為 5 的 int 陣列​

int[] numbers = {10, 20, 30, 40, 50}; // 一開始就給初始數值​

陣列在什麼情況下好用 ?

  • 資料數量固定時 (例如一年固定 12 個月)。
  • 需要速度快, 操作簡單。
  • 每個元素都是同一種資料型態。

什麼是串列 (List)

可以一直加格子的置物籃

串列就像是置物籃上面可以持續的加入掛勾, 以下是串列的特性

  1. 大小可變 : 想加入資料就加入, 想刪就刪。
  2. 資料型態可以不同 : 同一個串列可以放字串,數字,布林值等不同類型。
  3. 存取速度比陣列稍慢:因為不是固定長度的連續記憶空間。

Java 為例

Java 的串列指的是 List 介面, 最常用的實作是:ArrayListLinkedList

其中兩者差別主要在 LinkedList 的記憶體位置不連續, 每個節點都包含 data + 下一個節點的位址 (指標) , 而 ArrayList 在記憶體中的位置是連續的, 如果裝滿需要整排換到更大的空間。

import java.util.ArrayList;

public class Main {
public static void main(String[] args) {

// 創建新的物件
ArrayList<Integer> list = new ArrayList<>();

// 增加數值進去
list.add(1);
list.add(2);

​list.remove(Integer.valueOf(3)) // 移除數字3

// 取得數值
list.get(1);
}
}

什麼時候使用 ArrayList

常用功能是讀取資料 get(Index), 不常在中間插入或刪除, 資料量大但讀取比變動多, 存取入度較快。

典型例子 : 成績表 商品清單 玩家列表 排行榜

什麼時候使用 LinkedList

常常需要在中間或頭部插入 / 刪除, 幾乎不需要使用 get(index) 來找資料, 讀取速度慢城市當中比較少用。

典型例子 : 佇列 Queue Deque, 多比資料需要頻繁插入刪除

總結

  • Array(陣列):固定大小、速度快、型態統一。
  • List / ArrayList(串列):大小可變、功能多、用來處理不固定數量的資料。











留言
avatar-img
Krist
2會員
11內容數
您好, 目前是軟體工程師 Krist
你可能也想看
Thumbnail
這篇文章深入淺出地介紹堆疊(Stack)這種資料結構,包含其定義、特性、操作流程、JavaScript實作範例、應用場景(例如:回溯、瀏覽器上一頁功能、深度優先搜尋等),以及LeetCode相關題目。文末提供延伸學習資源,並鼓勵讀者提出學習需求。
Thumbnail
這篇文章深入淺出地介紹堆疊(Stack)這種資料結構,包含其定義、特性、操作流程、JavaScript實作範例、應用場景(例如:回溯、瀏覽器上一頁功能、深度優先搜尋等),以及LeetCode相關題目。文末提供延伸學習資源,並鼓勵讀者提出學習需求。
Thumbnail
最近正在進行期中考題的出題,並且在設計大語言模型這門選修課和資料結構這門必修課的作業的時候,我一直在想一個核心的問題:同學們需要什麼樣的能力,讓他們在畢業之後可以用來當作面對如今變化多端的業界的武器?程式設計師會被AI時代淘汰嗎? 可以用ChatGPT寫作業嗎? 由於ChatGPT等強大的基於大
Thumbnail
最近正在進行期中考題的出題,並且在設計大語言模型這門選修課和資料結構這門必修課的作業的時候,我一直在想一個核心的問題:同學們需要什麼樣的能力,讓他們在畢業之後可以用來當作面對如今變化多端的業界的武器?程式設計師會被AI時代淘汰嗎? 可以用ChatGPT寫作業嗎? 由於ChatGPT等強大的基於大
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
在資料結構中,除了後進先出的 Stack,另一個常見且實用的就是 Queue(佇列)。它是許多系統背後默默運作的重要機制,例如排程器、印表機佇列、網路封包、事件處理機制等。 這篇筆記將帶你從零理解 Que
Thumbnail
在資料結構中,除了後進先出的 Stack,另一個常見且實用的就是 Queue(佇列)。它是許多系統背後默默運作的重要機制,例如排程器、印表機佇列、網路封包、事件處理機制等。 這篇筆記將帶你從零理解 Que
Thumbnail
本文提供軟體工程師面試常考的樹狀結構(Tree)相關知識,包含樹的基本概念、常見術語、二元樹、二元搜尋樹、樹的遍歷(DFS 與 BFS)、以及經典題目 Validate Binary Search Tree 的 JavaScript 解法與核心思路。
Thumbnail
本文提供軟體工程師面試常考的樹狀結構(Tree)相關知識,包含樹的基本概念、常見術語、二元樹、二元搜尋樹、樹的遍歷(DFS 與 BFS)、以及經典題目 Validate Binary Search Tree 的 JavaScript 解法與核心思路。
Thumbnail
深入淺出遞迴函式與動態規劃的原理與應用,透過費氏數列案例比較兩種方法的效率,並說明動態規劃的優勢與實作技巧,提升程式設計能力。
Thumbnail
深入淺出遞迴函式與動態規劃的原理與應用,透過費氏數列案例比較兩種方法的效率,並說明動態規劃的優勢與實作技巧,提升程式設計能力。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
軟體工程師職涯升級計畫啟動!本文深入探討陣列與串列這兩種基礎資料結構,比較其特性、優缺點與常見操作,並輔以JavaScript範例程式碼及時間複雜度分析,幫助讀者學習如何根據不同情境選擇合適的資料結構,寫出更高效的程式。
Thumbnail
軟體工程師職涯升級計畫啟動!本文深入探討陣列與串列這兩種基礎資料結構,比較其特性、優缺點與常見操作,並輔以JavaScript範例程式碼及時間複雜度分析,幫助讀者學習如何根據不同情境選擇合適的資料結構,寫出更高效的程式。
Thumbnail
本篇文章深入探討 RESTful API 與 GraphQL 兩種主流 API 設計風格的優缺點、適用場景及實作方式,並提供選擇建議,協助開發者根據專案需求做出明智的選擇。文章也涵蓋了 API 快取機制、權限控制、以及常見挑戰等面向。
Thumbnail
本篇文章深入探討 RESTful API 與 GraphQL 兩種主流 API 設計風格的優缺點、適用場景及實作方式,並提供選擇建議,協助開發者根據專案需求做出明智的選擇。文章也涵蓋了 API 快取機制、權限控制、以及常見挑戰等面向。
Thumbnail
什麼是雜湊表?—— 鍵值對的抽象資料型態 想像一下,你有一本非常厚的通訊錄。如果這本通訊錄是按照每個人的姓名首字母排序的,當你想找「王小明」的電話時,你可以迅速翻到「W」的開頭,然後快速找到他。雜湊表就
Thumbnail
什麼是雜湊表?—— 鍵值對的抽象資料型態 想像一下,你有一本非常厚的通訊錄。如果這本通訊錄是按照每個人的姓名首字母排序的,當你想找「王小明」的電話時,你可以迅速翻到「W」的開頭,然後快速找到他。雜湊表就
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News