如何从 Map<String, Object> 创建 Guava HashMultiset

How to create a Guava HashMultiset from a Map<String, Object>

这不编译:

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

None 的重载 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}]