I work in payment gateway company and while analyzing the code I came across ImmuatbleMap objects. I want to know all the details about. What is it? What are its advantages over the map? Does core java has its support for ImmuatbleMap?
Asked
Active
Viewed 1.0k times
5
-
3Possible duplicate of [What is meant by immutable?](http://stackoverflow.com/questions/279507/what-is-meant-by-immutable) – OH GOD SPIDERS Mar 17 '17 at 10:44
-
3Have you read this https://github.com/google/guava/wiki/ImmutableCollectionsExplained ? I think that your question is too broad for been treated here. – RubioRic Mar 17 '17 at 10:48
-
1try this link http://stackoverflow.com/questions/8892350/immutable-vs-unmodifiable-collection – Sumit Sagar Mar 17 '17 at 10:54
-
The main difference between `Map` and `ImmutableMap` is that the former is an interface, of which the latter is a concrete implementation. – Andy Turner Mar 17 '17 at 10:57
-
1@AndyTurner Actually `ImmutableMap` is an abstract class with additional contract (immutability guarantees), concrete implementations are hidden. – Grzegorz Rożniecki Mar 17 '17 at 11:11
-
@Xaerxess OK, concrete-ish :) The point is that it implements the interface. – Andy Turner Mar 17 '17 at 11:12
1 Answers
9
ImmutableMap
s are introduced in Guava, they comply to Java's Map
API, but with additional guarantees.
In a nutshell:
- you cannot add, replace or remove entries
- they are "fully immutable" if entry objects do not have mutable state
- as a consequence, they are thread safe
null
s are forbidden- (slightly) more time- and space-efficient compared to usual Java's collections
- iteration order is predictable
For full info see Guava's guide and javadoc for ImmutableCollection
which applies to maps and other Guava's immutable collections.

rrobby86
- 1,356
- 9
- 14
-
2You might add a link to https://github.com/google/guava/wiki/ImmutableCollectionsExplained#why which also mentions "time and space savings". – mfulton26 Mar 17 '17 at 20:28