Java HashMap 中的可变参数

cal*_*ses 5 java dictionary hashmap variadic-functions

HashMap <String,String... strings> hm = new HashMap<String,String... strings>();

hm.put("Zara", "Pony","Cars", "Magic");
hm.put("John", "Horse","Flying", "Loving");
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?它不让我。

Mur*_*nik 4

省略号 ( ...) 运算符只能用在方法签名中。您可以显式声明和创建数组:

Map<String, String[]> hm = new HashMap<>();

hm.put("Zara", new String[]{"Pony", "Cars", "Magic"});
hm.put("John", new String[]{"Horse", "Flying", "Loving"});
Run Code Online (Sandbox Code Playgroud)

Map#put如果你绝对必须使用 varags,你可以用你自己的方法包装调用:

public static void main(String[] args) {
    Map<String, String[]> hm = new HashMap<>();

    addToMap(hm, "Zara", "Pony", "Cars", "Magic");
    addToMap(hm, "John", "Horse", "Flying", "Loving");
}

private static void addToMap
    (Map<String, String[]> map, String key, String... values) {
    map.put(key, values);
}
Run Code Online (Sandbox Code Playgroud)