public final class MapBuilder<K, V>
{
private final Map<K, V> map = new HashMap<K, V>();
public MapBuilder<K, V> put(final K key, final V value)
{
map.put(key, value);
return this;
}
public Map<K, V> build()
{
// Return a mutable copy, so that the builder can be reused
return new HashMap<K, V>(map);
}
public Map<K, V> immutable()
{
// Return a copy wrapped into Collections.unmodifiableMap()
return Collections.unmodifiableMap(build());
}
}
然后您可以使用:
final Map<K, V> map = new MapBuilder<K, V>().put(...).put(...).immutable();
4条答案
按热度按时间c8ib6hqw1#
试试这个。。
c9x0cxw02#
如果您的密钥和值是同一类型的,则使用以下方法:
您可以使用以下命令初始化Map:
如果您的钥匙和阀门属于不同的类型,则使用以下方法:
您可以使用以下命令初始化Map:
hjqgdpho3#
Guava和它的
ImmutableMap
:奖金:
ImmutableMap
的名字不是谎言;)请注意,有5个版本的
.of()
方法,所以最多有5个键/值对。更通用的方法是使用生成器:但是请注意:此Map不接受null键或值。
或者,这是一个穷人版本的
ImmutableMap
. 它使用了一个经典的生成器模式。请注意,它不检查空值:然后您可以使用:
okxuctiv4#
在commons集合或jdk中没有任何内容。但您也可以使用Guava和以下代码: