1) Якщо Карта може бути незмінною:
Collections.emptyMap()
// or, in some cases:
Collections.<String, String>emptyMap()
Останнє вам доведеться використовувати останнє, коли компілятор не може автоматично визначити, який тип Map потрібен (це називається виведенням типу ). Наприклад, розглянемо метод, оголошений так:
public void foobar(Map<String, String> map){ ... }
Передаючи порожню карту безпосередньо до неї, ви повинні мати чітку інформацію про тип:
foobar(Collections.emptyMap()); // doesn't compile
foobar(Collections.<String, String>emptyMap()); // works fine
2) Якщо вам потрібно мати змогу змінити карту, наприклад:
new HashMap<String, String>()
(як вказував техбланкс )
Додаток : Якщо ваш проект використовує Guava , у вас є такі варіанти:
1) Незмінна карта:
ImmutableMap.of()
// or:
ImmutableMap.<String, String>of()
Звичайно, тут немає великих переваг порівняно з Collections.emptyMap()
. Від Javadoc :
Ця карта поводиться та працює порівняно з Collections.emptyMap()
, і переважно переважно для узгодженості та ремонтопридатності вашого коду.
2) Карта, яку ви можете змінити:
Maps.newHashMap()
// or:
Maps.<String, String>newHashMap()
Maps
містить подібні фабричні методи для створення екземплярів інших типів карт, таких як TreeMap
або LinkedHashMap
.
Оновлення (2018) : На Java 9 або новіших версіях найкоротший код для створення непорушної порожньої карти:
Map.of()
... використовуючи нові фабричні методи зручності від JEP 269 . 😎