促銷
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題
課程
評論
關於我們
開始
開始學習
立即開始學習
My Progress
Courses
任務地圖
課程
Java 25
所有任務
所有等級
Set:HashSet 與 TreeSet,元素唯一性
JAVA 25 SELF
等級 26,
課程 3
在本講座中,我們解析介面
Set
(Java):它與
List
有何不同、如何確保元素唯一性、實作
HashSet
(快速、無序)與
TreeSet
(已排序)如何運作、以及何時選用哪種結構。我們也會討論關於
equals()
與
hashCode()
的重要細節、對
null
的處理、常見題型(移除重複、檢查唯一性)與常見錯誤。
泛型(Generics):為什麼需要、基礎語法
JAVA 25 SELF
等級 26,
課程 4
從「原始」集合轉向型別安全的程式碼。本講座說明:在引入泛型之前,以
Object
為基礎的集合如何導致執行期錯誤(
ClassCastException
)、泛型如何在編譯期解決問題、如何讀寫像
List<String>
、
Map<String, Integer>
這樣的寫法,什麼是「菱形運算子」
<>
,以及為何需要型別擦除(type erasure)。另外還有自訂泛型類別的範例與常見錯誤解析。
Collection、List、Set、Map 介面:階層結構
JAVA 25 SELF
等級 27,
課程 0
帶你拆解 Java 集合的基礎:介面
Collection
及其分支
List
、
Set
、
Queue
/
Deque
,以及獨立的
Map
階層。你將瞭解為什麼
Map
不繼承
Collection
、整體階層長什麼樣、各種實作有何差異、哪些方法是關鍵、以及該在什麼情況下選用哪一個。最後—常見錯誤與如何避免。
Iterable 與 Iterator:遍歷集合
JAVA 25 SELF
等級 27,
課程 1
在本講座中,我們講解如何使用介面
Iterable
與
Iterator
:方法
iterator()
做什麼、for-each 迴圈在「幕後」如何運作、何時以及為何要手動使用
hasNext()
與
next()
、如何透過
remove()
安全地刪除元素而不觸發
ConcurrentModificationException
,以及如何使用
keySet()
、
values()
與
entrySet()
正確遍歷
Map
。包含大量實用範例與常見錯誤,幫助你加深理解。
Queue、Deque、Stack:佇列與堆疊的操作
JAVA 25 SELF
等級 27,
課程 2
在本講座中,我們將講解 Java 中的佇列與堆疊:什麼是
FIFO
與
LIFO
原則,
Queue
、
Deque
與
Stack
的差異,為何在現代專案中應選擇
ArrayDeque
,以及如何安全地使用
offer
/
poll
/
peek
與
push
/
pop
/
peek
這些方法。還會示範
LinkedList
、
PriorityQueue
、列印小應用與 undo 堆疊,並解析常見錯誤。
NavigableSet/NavigableMap
JAVA 25 SELF
等級 27,
課程 3
在本講座中,我們將解析 Java 的有序與可導航集合:
NavigableSet
與
NavigableMap
。實務上會示範如何透過
subSet
/
headSet
/
tailSet
操作區間,使用
lower
、
floor
、
ceiling
、
higher
尋找「最接近」的元素,並用
pollFirst
/
pollLast
控制邊界。還會說明反向視圖
descendingSet
/
descendingMap
、即時(live)view 與典型情境(行程/時段、優先順序、分級/刻度)。實作上使用
TreeSet
與
TreeMap
。
Generics wildcards
JAVA 25 SELF
等級 27,
課程 4
在本講座中,我們會講解 Java 泛型的不變性、型別參數的界限(
extends
/
super
)、通配型別
?
,以及
PECS
規則(「Producer
Extends
, Consumer
Super
」)。我們將探討如何使用 wildcard 撰寫通用方法、型別擦除(type erasure)的運作方式、在使用
instanceof
與陣列時的限制,還有與集合與 Stream API 相關的實作練習。最後——常見錯誤以及如何避免。
集合元素的篩選
JAVA 25 SELF
等級 28,
課程 0
在本課我們講解在
Java
中對集合進行篩選的實作:透過迴圈
for
的命令式做法、使用
Iterator
與方法
remove()
在迭代期間安全刪除,以及現代且精煉的
removeIf
(Java 8+)。我們會討論為什麼會出現
ConcurrentModificationException
、何時應該建立新的清單,以及在撰寫篩選條件時最常見的錯誤。
集合的轉換
JAVA 25 SELF
等級 28,
課程 1
在本講座中,我們講解如何以命令式方式進行集合轉換:從
List<String>
取得
List<Integer>
(例如字串長度)、如何從網域模型物件(
Product
→ 名稱/價格)中擷取欄位、如何透過
addAll()
或巢狀迴圈將巢狀集合「扁平化」,以及如何使用
if
與像
startsWith
這類方法把過濾與轉換組合在一起。最後我們會討論典型錯誤:修改原始集合、錯誤的型別轉換(
ClassCastException
),以及效能相關的問題。
安全刪除元素
JAVA 25 SELF
等級 28,
課程 2
在實務中,從集合刪除元素常常會導致
ConcurrentModificationException
。本講將說明為什麼透過
for-each
迭代時會發生這種情況,如何用
Iterator.remove()
安全刪除元素,
ListIterator
有什麼用處,何時選擇
removeIf
(Java 8+),以及如何正確處理
Map
。最後——提供實用建議與常見錯誤。
EnumSet/EnumMap
JAVA 25 SELF
等級 28,
課程 3
在本講座中,我們將講解用於列舉的專用集合 —
EnumSet
與
EnumMap
,它們來自套件
java.util
:內部如何運作(位元遮罩與依
ordinal
進行索引)、為何比
HashSet
/
HashMap
更快且更精簡、適用場景(旗標、對應表、有限狀態機),與修改
enum
及序列化相關的陷阱,以及一套最佳實務與常見錯誤,並附上直觀的程式碼範例。
LinkedHashSet/LinkedHashMap
JAVA 25 SELF
等級 28,
課程 4
在本課中我們將講解可記住順序的集合:
LinkedHashSet
與
LinkedHashMap
。你將了解它們如何維持插入順序與存取順序、如何只用幾行程式碼透過覆寫
removeEldestEntry
建立 LRU 快取、與
HashSet
/
HashMap
相比在記憶體與速度上的開銷、何時需要決定性的順序以獲得穩定的測試與報表,以及在佇列/堆疊情境下為什麼
ArrayDeque
比
LinkedList
更合適。最後會介紹常見錯誤與如何避免。
顯示更多
1
...
12
13
14
15
16
...
30
Please enable JavaScript to continue using this application.