首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

《Think in Java》進階筆記(三):容器深度解析與 I/O 系統

     編輯:Java 綜合教學

第十一章:持有物件——容器概覽

兩大核心體系

  • Collection:獨立元素序列,遵循特定規則。
    • List:按插入序有序(ArrayList、LinkedList)
    • Set:無重複(HashSet、TreeSet、LinkedHashSet)
    • Queue:按排隊規則(FIFO、優先級)
  • Map:鍵值對,用鍵查找值。
    • HashMap:無序
    • TreeMap:鍵按比較結果升序
    • LinkedHashMap:按插入序或 LRU 序

工具類

  • Arrays.asList()、Collections.addAll():批量添加元素
  • Arrays.toString():容器友好打印

迭代器模式

Collection 繼承 Iterable,提供 iterator() 返回 Iterator,支援 hasNext()、next()、remove()。ListIterator 繼承 Iterator,支援雙向遍歷,僅用於 List。

Set 判重機制

基於**對象值**(equals()/hashCode())。TreeSet 需元素實現 Comparable 或提供 Comparator;String.CASE_INSENSITIVE_ORDER 為忽略大小寫比較器。

PriorityQueue

基於優先級堆的無界隊列,元素按自然序或 Comparator 排序。

容器分類圖譜

簡易容器分類

第十七章:容器深入研究

完整容器類庫圖譜(含抽象類、遺留類)

完整容器分類

黑色粗框=常用,虛線框=介面,虛線框=抽象類,實線框=具體類,空心箭頭=實現關係。

核心實現類特性總結表

介面實現類特性對元素要求
ListArrayList陣列實現,非同步,隨機訪問快無
Vector同步,其餘同 ArrayList無
LinkedList雙向鏈表,非同步,插入刪除快無
SetHashSet基於 Hash,查找快實現 hashCode()
TreeSet紅黑樹,有序實現 Comparable
LinkedHashSetHash+鏈表,維護插入序實現 hashCode()
MapHashMap哈希表,通用首選Key 實現 hashCode()/equals()
TreeMap紅黑樹,Key 有序Key 實現 Comparable 或提供 Comparator
LinkedHashMapHash+鏈表,迭代按插入序或 LRU同 HashMap
IdentityHashMap用 == 比較 KeyKey 通過 == 判等
WeakHashMap弱引用 Key,允許 GC 回收—
ConcurrentHashMap線程安全,高並發—

第十八章:Java I/O 系統

(原文此處內容較少,補充核心概念)

  • 流的分類:字節流(InputStream/OutputStream)vs 字符流(Reader/Writer);節點流 vs 處理流(裝飾器模式)。
  • 核心類:File、RandomAccessFile、BufferedInputStream/OutputStream、ObjectInputStream/OutputStream(序列化)。
  • NIO.2:Path、Files、AsynchronousFileChannel 等現代 API。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved