web-dev-qa-db-fra.com

Solution de contournement ImmutableMap.of () pour HashMap dans Maps?

Il existe des méthodes utilitaires pour créer ImmutableMap comme Immutable.of(Key, value) et sa surcharge. 

Mais de telles méthodes n'existent pas pour HashMap ou LinkedHashMap dans la classe Maps

Y a-t-il une meilleure façon de faire cela ou Guava suppose qu'une telle carte est toujours une carte constante et que ImmutableMap est la meilleure option et ne nécessite pas de fournir un utilitaire pour HashMap.

27
Premraj

Essayez Maps.newHashMap(ImmutableMap.of(...))

Maps.newHashMap(Map map)

15
user638455

ImmutableMap.of() renvoie une carte immuable basée sur le hachage sans ordre.

Si vous avez besoin d'une carte immuable commandée, ImmutableSortedMap.of() est un choix. 

ImmutableSortedMap fournit des méthodes telles que firstKey(), lastKey(), headMap(K) et tailMap(K);

Les deux classes fournissent la méthode copyOf(Map).

ne pouvez-vous pas utiliser la méthode copyOf de ImmutableMap décrite ici ?

ça devrait être quelque chose comme 

Map newImmutableMap = ImmutableMap.copyOf(yourMap);
0
danny