如何在Kotlin集合中创建UpdateOrInsert

时间:2017-09-05 15:11:08

标签: collections kotlin

我有一个项目列表,其中一个项目副本由用户更改,如何通过ID和更新在我的集合中找到它,或者如果找不到它我想添加项目?我最好的猜测是,但它需要丑陋的 indexOf(v)

fun updateOrInsert(note : UserNote) {
    val list = notes.value!!
    val v = list.firstOrNull{(Id) -> Id ==note.Id}
    if (v==null) {
        list.add(note)
    } else {
        val i = list.indexOf(v)
        list[i] = note
    }

    notes.value = list
}

1 个答案:

答案 0 :(得分:2)

使用indexOfFirst查找具有给定ID的第一个元素的索引。如果为-1,则将该项添加到列表中,否则,更改找到的索引处的值。