1) Si la Carte peut être immuable:
Collections.emptyMap();
// or, in some cases:
Collections.<String,String>emptyMap();
Vous aurez à utiliser ce dernier, parfois, quand le compilateur ne peut pas comprendre à quel type de Carte est nécessaire (ce qui est appelé l'inférence de type). Par exemple, considérons une méthode déclarée comme ceci:
public void foobar(Map<String,String> map){ ... }
Lors du passage de la Carte vide directement, vous devez être explicite sur le type:
foobar(Collections.emptyMap()); // doesn't compile
foobar(Collections.<String,String>emptyMap()); // works fine
2) Si vous avez besoin d'être en mesure de modifier la Carte, par exemple:
new HashMap<String,String>();
(comme tehblanx souligné)
Addendum: si votre projet utilise la Goyave, vous avez les possibilités suivantes:
1) Immuable de la carte:
ImmutableMap.of();
// or:
ImmutableMap.<String, String>of();
Accordé, pas de gros avantages par rapport à l' Collections.emptyMap()
. À partir de la Javadoc:
Cette carte se comporte et effectue comparable à Collections.emptyMap()
,
et il est préférable principalement pour des raisons de cohérence et de facilité de maintenance de vos
code.
2) la Carte que vous pouvez modifier:
Maps.newHashMap();
// or:
Maps.<String, String>newHashMap();
Maps
contient similaire usine méthodes pour l'instanciation d'autres types de cartes, comme TreeMap
ou LinkedHashMap
.