1) Harita değişmez olabilirse:
Collections.emptyMap()
// or, in some cases:
Collections.<String, String>emptyMap()
Bazen, derleyici ne tür bir Haritaya ihtiyaç duyulduğunu otomatik olarak anlayamadığında ikincisini kullanmanız gerekir (buna tür çıkarımı denir ). Örneğin, şu şekilde bildirilmiş bir yöntemi düşünün:
public void foobar(Map<String, String> map){ ... }
Boş Haritayı doğrudan ona iletirken, tür konusunda açık olmanız gerekir:
foobar(Collections.emptyMap()); // doesn't compile
foobar(Collections.<String, String>emptyMap()); // works fine
2) Haritayı değiştirebilmeniz gerekiyorsa, örneğin:
new HashMap<String, String>()
( tehblanx'ın işaret ettiği gibi )
Ek : Projeniz Guava kullanıyorsa , aşağıdaki alternatiflere sahipsiniz:
1) Değişmez harita:
ImmutableMap.of()
// or:
ImmutableMap.<String, String>of()
Elbette, burada ile karşılaştırıldığında büyük bir fayda yok Collections.emptyMap()
. Javadoc'tan :
Bu harita Collections.emptyMap()
, benzer şekilde davranır ve performans gösterir ve esas olarak kodunuzun tutarlılığı ve sürdürülebilirliği için tercih edilir.
2) Değiştirebileceğiniz harita:
Maps.newHashMap()
// or:
Maps.<String, String>newHashMap()
Maps
TreeMap
veya gibi diğer harita türlerini örneklemek için benzer fabrika yöntemleri içerir LinkedHashMap
.
Güncelleme (2018) : Java 9 veya daha yeni sürümlerde, değişmez bir boş harita oluşturmak için en kısa kod:
Map.of()
... yeni kullanılarak kolaylık fabrika yöntemleri gelen Jep 269 . 😎