Map

更新於 發佈於 閱讀時間約 2 分鐘
Map是由Key-Value所組成的
而Key的部分不能重複,因為是Set
  1. HashMap:
    • 使用哈希表存儲鍵值對
    • 平均情況下,基本操作(獲取、插入、刪除)具有常數時間複雜度
    • 不保證項目的特定順序
    • 允許鍵和值為空( 空字串、null)
    • 非線程安全
  2. LinkedHashMap:
    • 保持項目插入的順序
    • 使用哈希表和鏈表實現有序遍歷
    • 提供類似 HashMap 的性能,但稍微慢一些,因為需要維護順序
    • 允許鍵和值為空( 空字串、null)
    • 非線程安全
  3. TreeMap:
    • 根據鍵的自然順序或自定義 Comparator 進行排序
    • 使用紅黑樹結構維護項目
    • 基本操作(獲取、插入、刪除)具有對數時間複雜度
    • 提供有序遍歷
    • 不允許鍵為空,但允許值為空 (因為要以鍵做排序)
    • 非線程安全
  4. ConcurrentHashMap:
    • 提供線程安全的操作,支持併發訪問
    • 將底層數據結構分為多個段,允許對不同段進行並發操作
    • 適用於高並發場景,具有良好的擴展性
    • 對於非並發訪問,性能與 HashMap 相似
    • 允許鍵和值為空( 空字串、null)
簡單來講,併發就是多個執行緒在同個時間內不斷切換、互相搶資源地在處理任務。是在瞬間、極短的時間內!
  1. Hashtable:
    • ConcurrentHashMap 出現後被標記為過時 (deprecated)
    • 提供線程安全的操作,支持併發訪問
    • 提供類似 HashMap 的功能,但具有同步方法
    • 不允許鍵和值為空
  2. WeakHashMap (我完全沒用到過):
    • 允許鍵在不再有強引用時被垃圾回收
    • 適用於動態創建鍵並在內存壓力下釋放的情況
    • 提供類似 HashMap 的功能,但具有弱鍵
    • 非線程安全


avatar-img
Genos's Coding Diary的沙龍
6會員
19內容數
我的Java學習日記
留言
avatar-img
留言分享你的想法!
Set 是繼承 Collection API的一個子接口 interface 唯一的限制是不允許重覆的物件存在 所以當不想有相同的物件出現,就可以選擇用Set
程式建立thread,然後會交給硬體中的scheduler去排定執行、切換資源 我們無法強制指定順序,因為電腦有太多任務需要執行,但資源有限,因此會由scheduler去分配、切換資源 電腦能同時執行多項任務
Error分為三種 Compile time error Runtime error 俗稱(Exception) Logical error
普通的interface:有一個以上的abstract method Functinal Interface...
所有被宣告在interface中的method都是public abstract 所以interface中的method才不需要特地標上修飾符與abstract interface只體現設計方向 而如何實現此設計
abstract method 一定要在 abstract class裡面 abstract class裡面不一定要有abstract method
Set 是繼承 Collection API的一個子接口 interface 唯一的限制是不允許重覆的物件存在 所以當不想有相同的物件出現,就可以選擇用Set
程式建立thread,然後會交給硬體中的scheduler去排定執行、切換資源 我們無法強制指定順序,因為電腦有太多任務需要執行,但資源有限,因此會由scheduler去分配、切換資源 電腦能同時執行多項任務
Error分為三種 Compile time error Runtime error 俗稱(Exception) Logical error
普通的interface:有一個以上的abstract method Functinal Interface...
所有被宣告在interface中的method都是public abstract 所以interface中的method才不需要特地標上修飾符與abstract interface只體現設計方向 而如何實現此設計
abstract method 一定要在 abstract class裡面 abstract class裡面不一定要有abstract method