,java,guava"/>

首页 > 解决方案 > 如何从 Map 创建 Guava HashMultiset

问题描述

这不编译:

Map<String, Object> map = new HashMap<String, Object>();
HashMultiset<Map<String, Object>> n1Properties = HashMultiset.create(map);      

在此处输入图像描述

标签: javaguava

解决方案


没有任何重载create方法接受Map. 但是您可以使用该addAll方法将Map转换后的内容添加到Collection.

import com.google.common.collect.HashMultiset;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class SO {

    public static void main(String args[]) {
        Map<String, Object> map = new HashMap<>();
        map.put("foo", "FOO");
        map.put("bar", "BAR");

        HashMultiset<Map<String, Object>> n1Properties = HashMultiset.create();
        n1Properties.addAll(Collections.singleton(map));

        System.out.println(n1Properties);
    }

}

输出:

[{bar=BAR, foo=FOO}]

推荐阅读