【问题标题】:How to map two-dimensional array into HashMap using first dimension as keys with stream如何使用第一维作为流的键将二维数组映射到 HashMap
【发布时间】:2019-03-29 22:42:22
【问题描述】:

我需要映射二维数组

String [][] values = {{key1, key2,...}, {value1, value2,...}}

进入HashMap<String, String>

我尝试使用流Arrays.stream(values).collect(Collectors.toMap(key -> key[0], value -> value[1])

我收到了key1=key2, value1=value2。 我需要key1=value1, key2=value2

对于这种方法,是否有一些使用流的解决方案?

【问题讨论】:

    标签: java arrays hashmap java-stream


    【解决方案1】:

    试试这个:

     HashMap<String,String> map = 
            new HashMap<String, String>(IntStream
                                        .range(0,values[0].length)
                                        .boxed()
                                        .collect(Collectors.
                                                 toMap(i -> values[0][i], i -> values[1][i])));
    

    【讨论】:

    • 让它更干净:Map&lt;String, String&gt; oneDMap = IntStream.range(0, values[0].length).boxed() .collect(Collectors.toMap(i -&gt; values[0][i], i -&gt; values[1][i]))
    • 如果确实需要HashMap而不是未指定的Map,您可以将HashMap::new直接指定为toMap收集器的地图供应商,而不是复制整个结果地图.
    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    相关资源
    最近更新 更多