2017-03-17 182 views
0

我在支付網關公司工作,同時分析了我遇到的代碼 ImmuatbleMap對象。我想知道所有的細節。它是什麼? 它在地圖上有什麼優勢?核心java是否支持ImmuatbleMap?地圖和ImmutableMap之間的區別

+3

可能重複[什麼是不可變的?](http://stackoverflow.com/questions/279507/what-is-meant-by-immutable) –

+3

你讀過這個https://github.com/ google/guava/wiki/ImmutableCollectionsExplained?我認爲你的問題在這裏受到過寬泛的處理。 – RubioRic

+1

嘗試此鏈接http://stackoverflow.com/questions/8892350/immutable-vs-unmodifiable-collection –

回答

2

ImmutableMap s在Guava中引入,它們符合Java的Map API,但有額外的保證。

一言以蔽之:

  • 你不能添加,替換或刪除條目
    • 他們是「完全不可變的,」如果進入對象不具有可變的狀態
    • 作爲一個後果,他們是線程安全
  • null s的禁止
  • (略)更多的時間和空間效率比起通常的Java的集合
  • 迭代順序是可以預見的

有關完整信息見Guava's guidejavadoc for ImmutableCollection它適用於地圖和其他番石榴的不可變的集合。

+1

您可以添加https://github.com/google/guava/wiki/ImmutableCollectionsExplained#why的鏈接,其中還提到了「節省時間和空間」。 – mfulton26

+1

完成,謝謝:) – rrobby86