Kotlin将Map <key,value =“”>转换为Map <key,list <value =“” >>

时间:2018-11-27 12:07:05

标签: kotlin

有什么方法可以创建Map of? 下面我展示了我现在得到的。第一种解决方案更清洁,但是需要获取我不需要的另一个对象(功能编程)。

    val result: MutableMap<key, MutableList<Int>> = mutableMapOf()

    someArray.onEach { (key, int) ->
        result
            .computeIfAbsent(key.id) { mutableListOf() }
            .add(int)
    }

    return list

我得到的东西不太干净

    return someArray
        .map { (key, int) ->
            key.id to int
        }
        .groupBy { it.first }
        .map { (k, v) ->
            k to v.filter { it.first == k }
                .map { it.second }
        }

1 个答案:

答案 0 :(得分:3)

groupBy支持第二个参数,该参数可用于立即转换值,因此您仅需要以下内容(注意:还将map调用集成到键选择器中):

someArray.groupBy({ it.first.id }, { it.second })