如何在对象列表中但在Kotlin特定字段中进行迭代

问题描述 投票:0回答:1

让我们说我有一个AccountDto列表(getContats()->列表),每个列表都有一列accountId

List<Int> list = accountsDao.getContactIds()

并且我有一个MessageDto列表,其中messageDto具有字段'fromAccountId'。我想遍历messageList并找到我的DB中不存在的fromAccountId新内容。

getAccounts().value?.let {
            for ((every accountId from it.accountDto) in --(every fromAccountId in newMessages.list)--) {
                if (it.contains(newFromAccountId))
                    println("fount $newFromAccountId")
            }
        }

在Kotlin中有一种优雅的方法可以做到这一点吗?

android kotlin iteration dto
1个回答
2
投票

您正在使用嵌套的loops,这不是一个好主意,因为此操作的时间复杂度为O(n^2),所以随着lists的大小增加,性能将很快下降。

以一些额外的内存为代价的更好的方法是,首先从set中创建所有accountId的Database,然后在iterate上创建messageList,然后为每个accoutId检查是否[ C0]包含此set

accountId
© www.soinside.com 2019 - 2024. All rights reserved.