簡體   English   中英

使用工廠方法Set.of()和Map.of()創建的集合和地圖的時間復雜度是多少?

[英]What is a time complexity for sets and maps created with a factory methods Set.of() and Map.of()?

在Java中,當我創建一個setSet.of()mapMap.of()什么是時間復雜度的containsget操作? 是O(1)嗎?

Set.ofMap.of API返回JDK私有實現的實例。 規范不能保證這些實現的性能。 但是,API確實會返回有關可以進行性能說明的特定實現。 因此,該問題是合理的,並且不同於(假設的)問題,例如“ Map.get的性能Map.get ?” 這是一個很糟糕的問題,因為有許多不同的Map實現。

無論如何, Set.of (對於大於2的大小)和Map.of (對於大於1的大小)后面的實現都使用簡單的開放式尋址哈希方案,並通過線性探測來解決沖突。 如果元素的(鍵)哈希值分布合理,則Set.containsMap.get操作為O(1)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM