Java 从两个大小相等的数组构造贴图

Java 从两个大小相等的数组构造贴图,java,Java,是否有一些助手可以从两个(大小相等)数组构建映射?也就是说,类似于以下内容的某个单行版本: public static <K, V> Map<K, V> createMap(final K[] keys, final V[] values) { assert keys.length == values.length; final Map<K, V> map = new HashMap<K, V>(); for (int

是否有一些助手可以从两个(大小相等)数组构建
映射
?也就是说,类似于以下内容的某个单行版本:

public static <K, V> Map<K, V> createMap(final K[] keys, final V[] values)
{
    assert keys.length == values.length;

    final Map<K, V> map = new HashMap<K, V>();

    for (int i = 0; i < values.length; i++) {
        map.put(keys[i], values[i]);
    }

    return map;
}
publicstaticmap-createMap(最终K[]键,最终V[]值)
{
assert keys.length==values.length;
final Map=new HashMap();
对于(int i=0;i
到目前为止,我搜索过番石榴,但没有成功。我很惊讶,因为Guava的ImmutableMap提供了很好的实用功能,比如。

您可以从Apache Commons中尝试


MapUtils.putAll(Map,Object[])应该做你想做的事情。

当前的函数有什么问题?你每次都必须重新创建这个函数,而ImmutableMap.of()很方便,而且就在那里。@当然,我只是猜测一下:当前的函数的问题是,它是一个自定义的实用程序方法,可能需要重新发明轮子,在许多项目中使用时不方便/复杂。或者,如果将for循环作为一个线性行放到它使用的每个地方,则很容易出现复制粘贴编码错误。@Micha:您能对“每次都必须重新创建此函数”添加一些说明吗?我不明白。那段代码对我来说看起来很好。不过,它使用了一个多维数组。问题中的数组需要改进。似乎
putAll()
的数组参数采用(键,值)对,而不是
K[]键
V[]值
@MichaWiedenmann它实际上是
putAll(map,[[keys],[values]])
@EdwinDalorzo请编辑他的答案,因此,我可以删除此评论和我以前的评论。