Java 進階教學 : ArrayList

Java Road


好的頻道需要你的支持,謝謝你使用Youtube影片的超級感謝功能給我們鼓勵。


好的頻道需要你的支持,謝謝你使用Youtube影片的超級感謝功能給我們鼓勵。

ArrayList

  針對大量資料的管理,在之前我們學的是用陣列。但陣列真的不好用,要從頭跑到尾還可以。但是,如果是要新增、插入或者刪除元素都要寫一堆程式碼,相當不方便

  Java 官方 API 裡的 java.util package 中提供了一系列的類別,這些類別的物件可以協助我們管理大量的資料。這是針對各種資料管理的主題開發的一系列類別,包含 stack, queue, hash and map 等常見的資料結構

  這一系列類別的物件統稱為集合物件。集合物件可以協助開發者管理一群物件。管理一群物件:就是儲存一群物件的記憶體位址。也就是說:集合物件用來儲存一群物件的記憶體位址

  注意,集合物件是儲存物件的記憶體位址,它不能夠儲存基本資料型別的值。所以如果是大量的基本資料型別的值,就必須把那些值建立成 Wrapper Classes 的物件,然後再用集合物件來管理那一群 Wrapper Classes 的物件。當然,要寫那一群物件的相關程式碼,整體程式碼就會變得相當囉唆。所以我們就會透過 Auto Boxing / Auto Unboxing 的功能來撰寫。

  ArrayList 是 Java API 裡面跟陣列的操作比較類似的類別。先讓各位藉由認識這個類別,來學會操作 Java 的集合物件。有大量資料要管理,需要用陣列的時候,建議直接用 ArrayList 取代陣列。至於其他的 API 我們到了後面的課程,更深度的了解 Java 其他進階語法的操作之後再來學習。


1. 特性

A. 建立物件時可以指定容量。

B. 元素個數超過容量時會自動增量。

C. 有序號的集合。

D. 有順序性。

E. 可以依序號新增、插入、修改與刪除元素。

F. 可以依物件值搜尋該物件在集合中的位置。

G. 集合中元素的值可以重複。

H. 可以儲存null。

2. 宣告

A. Generic

指定集合物件要管理的物件的型別,如果沒有指定會預設為 Object。

i. ArrayList<type> list = new ArrayList<type>();

ii. ArrayList<type> list = new ArrayList<>();

B. Wrapper Classes

3. 常用方法

A. add

i. 新增

把元素新增到集合最後面的位置。

ii. 插入

把元素插入到指定的位置。若指定的位置超過集合的邊界,會產生執行時期的錯誤

B. get

取得指定位置的元素。

C. size

取得集合物件中元素的量。

D. set

設定指定位置的元素,會取代原來的元素,不是修改原來元素的值。

E. remove

i. 指定序號

刪除指定位置的元素。

ii. 指定值

刪除指定值的元素。

F. indexOf

取得集合中,與指定值相同的元素的位置。若都不相同,取得 -1。

4. Collections

A. sort

依照元素物件預設的排序方式進行排序。採用快速排序法。

B. binarySearch

2分搜尋法。搜尋之前,一定要先排序。

i. 存在

序號。

ii. 不存在

插入位置的代號。乘以 -1 再 -1 之後,即為插入的位置。