簡體   English   中英

科特林轉換地圖 <Key, Value> 到地圖 <key, List<Value> &gt;

[英]Kotlin convert Map<Key, Value> to Map<key, List<Value>>

有什么方法可以創建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 }
        }

groupBy支持第二個參數,該參數可用於立即轉換值,因此您只需要以下內容(注意:還將map -call集成到鍵選擇器中):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM