让我们说我有一个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中有一种优雅的方法可以做到这一点吗?
您正在使用嵌套的loops
,这不是一个好主意,因为此操作的时间复杂度为O(n^2)
,所以随着lists
的大小增加,性能将很快下降。
以一些额外的内存为代价的更好的方法是,首先从set
中创建所有accountId的Database
,然后在iterate
上创建messageList
,然后为每个accoutId
检查是否[ C0]包含此set
。
accountId