Причина, по которой Collections
имеет методы для карт ввода 0 и 1, заключается в том, что они являются особыми случаями ... например, пустой Map
является неизменяемым синглтоном.
Для того, что вы хотите сделать,тем не менее, я бы настоятельно рекомендовал использовать Guava .Его Immutable*
коллекций (особенно ImmutableMap
) - это то, что вы хотите, я думаю:
private static final ImmutableMap<String, String> MAP = ImmutableMap.of(
"a", "b",
"c", "d");
Вы можете сделать выше для маленьких карт, а для больших карт вы можете написать:
private static final ImmutableMap<String, String> MAP =
ImmutableMap.<String, String>builder()
.put("a", "b")
.put("b", "c")
...
.put("y", "z")
.build();
Если вы не используете Гуаву, вы все равно, вероятно, захотите убедиться, что эту карту нельзя изменить.Это намного страшнее:
private static final Map<String, String> MAP;
static {
Map<String, String> temp = new HashMap<String, String>();
temp.put("a", "b");
temp.put("b", "c");
MAP = Collections.unmodifiableMap(temp);
}