1) Jika Peta tidak dapat diubah:
Collections.emptyMap()
// or, in some cases:
Collections.<String, String>emptyMap()
Anda harus menggunakan yang terakhir kadang-kadang ketika kompiler tidak dapat secara otomatis mencari tahu jenis Map yang dibutuhkan (ini disebut tipe inferensi ). Misalnya, pertimbangkan metode yang dideklarasikan seperti ini:
public void foobar(Map<String, String> map){ ... }
Saat meneruskan Map kosong langsung ke sana, Anda harus eksplisit tentang jenisnya:
foobar(Collections.emptyMap()); // doesn't compile
foobar(Collections.<String, String>emptyMap()); // works fine
2) Jika Anda ingin dapat mengubah Peta, misalnya:
new HashMap<String, String>()
(seperti yang ditunjukkan oleh tehblanx )
Tambahan : Jika proyek Anda menggunakan Jambu Biji , Anda memiliki alternatif berikut:
1) Peta yang tidak dapat diubah:
ImmutableMap.of()
// or:
ImmutableMap.<String, String>of()
Memang, tidak ada keuntungan besar di sini dibandingkan dengan Collections.emptyMap()
. Dari Javadoc :
Peta ini berperilaku dan bekerja sama dengan Collections.emptyMap()
, dan lebih disukai terutama untuk konsistensi dan pemeliharaan kode Anda.
2) Peta yang dapat Anda modifikasi:
Maps.newHashMap()
// or:
Maps.<String, String>newHashMap()
Maps
berisi metode pabrik serupa untuk membuat instance jenis peta lain juga, seperti TreeMap
atau LinkedHashMap
.
Pembaruan (2018) : Di Java 9 atau yang lebih baru, kode terpendek untuk membuat peta kosong yang tidak dapat diubah adalah:
Map.of()
... menggunakan metode pabrik praktis baru dari JEP 269 . 😎