gpt4 book ai didi

android - 如何修复 Kotlin 中的并发修改异常

转载 作者:行者123 更新时间:2023-11-29 14:16:37 25 4
gpt4 key购买 nike

这是我的代码,我在其中向列表添加数据:

fun bindProcess(listOfDocId: MutableList<String>, isActvityLogEnabled: Boolean): Observable<MutableList<SearchResultModel>> {
return Observable.create<MutableList<SearchResultModel>> {

var filteredList =CopyOnWriteArrayList<SearchResultModel>()// mutableListOf<SearchResultModel>()
val headerItem: SearchResultModel = SearchResultModel()
headerItem.type = 0
headerItem.title = context.getString(R.string.top_matches_label)
filteredList.add(headerItem)

for (row in ContSyncApplication.getContacts()) {
if (listOfDocId.contains(row.docId)) {
val myData: SearchResultModel = SearchResultModel()
myData.type = 1
myData.docId = row.docId
myData.name = row.display_name

if (!row.profile_image.isNullOrBlank()) {
myData.imagePath = row.profile_image!!
}
filteredList.add(myData)

if (isActvityLogEnabled && DatabaseQueryHelper.checkActivityLogById(row.docId)) {
val myactivityData: SearchResultModel = SearchResultModel()
myactivityData.type = 1
myactivityData.docId = row.docId
myactivityData.name = row.display_name
myactivityData.imagePath = row.profile_image ?: ""
mActvityList.add(myactivityData)
}
}
}

if (mActvityList.size > 0) {
val activityHeader: SearchResultModel = SearchResultModel()
activityHeader.type = 0
activityHeader.title = "Activity Log"
filteredList.add(activityHeader)
filteredList.addAll(mActvityList)
}

it.onNext(filteredList)
it.onComplete()
}
}

当我在列表中执行和添加数据时,我收到了 ConcurrentModificationException。任何人都可以向我建议如何执行循环以便我可以解决这个问题吗?我必须搜索并添加到列表中。

最佳答案

检查您是否在使用for each 遍历时修改同一个集合。如果你想修改同一个集合,你需要使用 iterator

关于android - 如何修复 Kotlin 中的并发修改异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49664617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com