如何在传递参数的同时创建java数组?

时间:2018-05-09 11:44:29

标签: java arrays

有更好的方法吗?

HashMap<String, String[]> SddcWithViolations = null;

String[] str1 = { str[1], str[2] } ;

SddcWithViolations.put(str[0], str1 );

2 个答案:

答案 0 :(得分:0)

您需要创建实例,否则您将获得NPE。还可以使用提供额外方法的Map接口。试试这个:

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

    String[] str1 = { str[1], str[2] } ;

    sddcWithViolations.put(str[0], str1 );

但我在这里看不到Map的任何需要。 List没问题。

Arrays.asList(str1);

答案 1 :(得分:0)

您可以使用匿名类在一个语句中初始化值并将值放入Map。

    String[] str = {"one", "two", "three"};
    Map<String, String[]> SddcWithViolations = new HashMap<String, String[]>(){{
        put(str[0], new String[]{str[1], str[2]});
    }};

    SddcWithViolations.forEach((key, value) -> System.out.println(key + " => " + Arrays.asList(value)));

输出:

  

一个=&gt; [二,三]