Java - 将字符串列表传递给hashmap的值

时间:2017-04-07 01:59:44

标签: java list hashmap

我正在尝试设置一个hashmap,将key作为字符串,将list数组作为值。可能吗?以及如何将列表设置为值?

HashMap<String, List<String>> foo = new HashMap<String, List<String>>();
foo.put("key1",{"key1_value1","key1_value2"});

4 个答案:

答案 0 :(得分:3)

您可以执行以下操作

Map<String, List<String>> foo = new HashMap<String, List<String>>();
List<String> list = new ArrayList<String>();
list.add("key1_value1");
list.add("key1_value2");
foo.put("key1",list);

答案 1 :(得分:2)

foo.put("key", Arrays.asList("key1_val1", "key1_val2"));

答案 2 :(得分:1)

您必须使用像ArrayList这样的数据结构,或者仅使用数组来表示字符串列表作为值。

  • 您可以将以下内容与List;

    一起使用
    foo.put("key", Arrays.asList("key1_val1", "key1_val2"));
    

    其中foo的类型为Map<String, List<String>>

  • 或者以下是一个数组;

    foo.put("key", new String[]{"key1_val1", "key1_val2"});
    

    其中foo的类型为Map<String, String[]>

答案 3 :(得分:0)

Map<String, List<String>> foo = new HashMap<String, List<String>>();
List<String> list = new ArrayList<String>();
list.add("value1");
list.add("value2");
foo.put("key1", list);

for (Entry<String, List<String>> entry : foo.entrySet()) {
    String key = entry.getKey();
    List<String> valueList = entry.getValue();

    System.out.println("key = " + key);
    for (String value : valueList) {
        System.out.println("value = " + value);
    }
}

<强>输出

key = key1
value = value1
value = value2