CodeGym
促銷
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題

課程

  • 評論
  • 關於我們
開始
開始學習
立即開始學習
  • My Progress
  • Courses
  • 任務地圖
  • 課程
  • equals 與 hashCode 的契約

    JAVA 25 SELF
    等級 29,課程 0
    在本講座中,我們將說明在 Java 中正確判定物件相等性的方式:運算子 == 比較參考(位址)與方法 equals 比較內容之間的差異、為什麼 equals/ hashCode 契約對於像 HashSet 與 HashMap 這樣的集合至關重要,以及它與 Comparable 的 compareTo 之關聯。循序範例、best practices 以及常見錯誤解析,將幫助你在使用雜湊表與可排序集合時避免陷阱。
    可用
  • Objects 類別:equals、hashCode、hash 方法

    JAVA 25 SELF
    等級 29,課程 1
    在本講座中我們剖析「瑞士刀」 java.util.Objects:如何用 Objects.equals 進行安全比較、用 Objects.hash 簡潔計算雜湊、透過 Objects.compare 委派比較、以 Objects.requireNonNull 保證值非- null,以及在串流中使用 Objects.isNull/ Objects.nonNull。我們將展示正確實作 equals/ hashCode/ compareTo,剖析實務案例,以及在使用 HashMap/ HashSet 時的常見錯誤。
    可用
  • Comparable 介面:實作、compareTo

    JAVA 25 SELF
    等級 29,課程 2
    在這堂課中,我們透過介面 Comparable 與方法 compareTo 來解析 Java 中物件的「自然順序」:為什麼需要它、如何正確實作、集合的排序機制( Collections.sort 與 List.sort)、多欄位比較、 null 值的處理,以及與 equals/ hashCode 的一致性。我們也會討論最佳實務、常見錯誤,並提供以 Person 類別為例的實作範例。
    可用
  • Comparator 介面:建立與使用

    JAVA 25 SELF
    等級 29,課程 3
    本講次說明何時使用 Comparator 而非 Comparable、方法 compare(T o1, T o2) 的語法與契約,透過 Collections.sort 與 List.sort 對清單進行排序的實作,如何將比較器寫成獨立類別,以及以匿名類別與 Lambda 運算式建立。也會介紹多層排序、處理 null 值、使用 Collections.binarySearch 進行搜尋、利用 reversed() 反轉順序,以及最佳實務與常見錯誤(例如為什麼應使用 Integer.compare 而不是 a - b)。
    可用
  • 在 Java 集合中搜尋與排序元素

    JAVA 25 SELF
    等級 29,課程 4
    在本講座中,我們將講解操作集合的實用技巧:使用方法 contains、 indexOf、 lastIndexOf 搜尋元素;透過迴圈 for 與運算子 break 進行條件式搜尋;使用類別 Collections 找出最小值與最大值。接著練習用 Collections.sort 與 List.sort 對清單排序、使用 Comparator、對 Map 的條目進行排序,以及依欄位對物件排序。最後會討論常見錯誤:由 List.of 建立的不可變清單、試圖直接排序 Set/ Map,以及不正確的比較器。
    可用
  • Stream API 入門:為什麼需要串流

    JAVA 25 SELF
    等級 30,課程 0
    在本講次中,我們會說明為什麼以命令式方式處理集合很快就會充滿樣板碼,以及 Stream API 如何把程式轉為宣告式風格:由 filter、 map、 collect 等操作組成的鏈、容易的組合、更少錯誤,並能透過 parallelStream() 輕鬆達成平行化。我們將展示適用情境、發展歷史,以及值得避免的典型錯誤。
    可用
  • Stream API 的基本操作:map、filter、collect

    JAVA 25 SELF
    等級 30,課程 1
    循序介紹 Stream API 的基本操作:如何從集合與陣列取得串流( stream()、 Arrays.stream、 Stream.of)、中間操作( filter、 map、 distinct)與終端操作( collect、 forEach、 count)的差異,以及如何用 Collectors( toList、 toSet、 joining)收集結果。實用範例、迷你練習與常見錯誤整理,幫助你快速掌握管線式資料處理。
    可用
  • Stream API 的子集合:distinct、limit、skip

    JAVA 25 SELF
    等級 30,課程 2
    在本講座中,我們講解用於處理資料子集合的三個關鍵 Stream API 操作: distinct(移除重複項)、 limit(限制元素數量)以及 skip(跳過前面的元素)。你將會看到它們在字串與物件集合上的行為、 equals/ hashCode 的實作如何影響 distinct 的結果、如何組合這些操作來做分頁與取得前 N 筆,以及最常見的錯誤。
    可用
  • forEach、peek 方法:副作用

    JAVA 25 SELF
    等級 30,課程 3
    本講次講解用於副作用的串流操作:終端操作 forEach 與中間操作 peek。我們將理解何時以及為何使用它們、它們有何不同、為什麼在 forEach 之後串流會被「關閉」,而 peek 不會改變資料,且只有在存在終端操作時才會執行。會展示實用範例、說明不直觀之處與常見錯誤(包括 ConcurrentModificationException,以及把 collect 錯誤地替換為 forEach)。
    可用
  • 透過 Stream 轉換集合

    JAVA 25 SELF
    等級 30,課程 4
    使用 Stream API 進行集合轉換的實用指南: List ↔ Set 的相互轉換,透過 Collectors.toMap() 構建對映(包含重複鍵的處理),用 Collectors.joining() 連接成字串,並解析終端與中間操作( forEach、 collect、 count、 anyMatch 等)。內文提供清楚的範例、說明與常見錯誤。
    可用
  • Stream API 中的 sum、 count、 average、 max、 min 方法

    JAVA 25 SELF
    等級 31,課程 0
    在本講座中,我們會解析彙總(聚合)操作 Stream API:如何用 count() 計數,如何用基本型別串流( IntStream、 LongStream、 DoubleStream)與 sum()、 average() 計算總和與平均,還有透過 min()/ max() 尋找極值。另行討論容器 Optional、 OptionalInt、 OptionalLong、 OptionalDouble 的使用,以及正確取值方式: orElse(...)、 ifPresent(...)、 orElseThrow()。我們也會學會使用收集器 Collectors.summingInt、 Collectors.averagingInt、 Collectors.maxBy/ minBy,並將它們與 groupingBy 結合。最後 — 拆解常見錯誤與細節。
    可用
  • reduce 與 collect 方法:資料彙總

    JAVA 25 SELF
    等級 31,課程 1
    解析串流的終端操作:通用的歸約 reduce() 與強大的收集器 collect()。我們將理解帶有 identity、 accumulator、 combiner 的方法簽名,學會使用 Collectors 中的現成收集器( toList()、 toMap()、 joining()、 groupingBy())來收集資料,並看看哪些情況應優先選擇 collect() 而非 reduce()。另外也會討論 Optional 的使用、 toMap() 中重複鍵的處理,以及平行串流的細節。
    可用
  • 1
  • ...
  • 13
  • 14
  • 15
  • 16
  • 17
  • ...
  • 30
學習
  • 註冊
  • Java 課程
  • 題目協助
  • 價格
  • Java 語法
社群
  • 用戶
  • 文章
  • 論壇
  • 聊天
  • 成功故事
  • 動態
  • 聯盟計畫
公司
  • 關於我們
  • 聯絡方式
  • 評價
  • 新聞中心
  • CodeGym for EDU
  • 常見問題
  • 支援
CodeGymCodeGym 是一門從零開始學習 Java 程式設計的線上課程。這門課程是初學者精通 Java 的完美方式。它包含超過 1200 題、具即時檢驗功能,以及涵蓋 Java 基礎理論的必要範圍。為了幫助你在學習上成功,我們實作了一系列激勵功能:測驗、程式專案、關於有效學習的內容,以及 Java 開發者職涯相關內容。
追蹤我們
介面語言
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia
繁體中文
Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"程式設計師是培養出來的,不是天生的" © 2026 CodeGym
MastercardVisa
"程式設計師是培養出來的,不是天生的" © 2026 CodeGym